Bāra sižets Matplotlibā

Bāra sižets Matplotlibā

Joslu diagramma vai joslu diagramma ir diagramma, kas attēlo datu kategoriju ar taisnstūrveida joslām, kuru garums un augstums ir proporcionāls to attēlotajām vērtībām. Stieņu diagrammas var tikt attēlotas horizontāli vai vertikāli. Joslu diagramma apraksta diskrēto kategoriju salīdzinājumus. Viena no diagrammas asīm attēlo konkrētās salīdzināmās kategorijas, bet otra ass attēlo izmērītās vērtības, kas atbilst šīm kategorijām.

Bāra sižeta izveidošana

The matplotlib API Python nodrošina bar() funkciju, ko var izmantot MATLAB stila lietošanā vai kā objektu orientētu API. Funkcijas bar() sintakse, kas jāizmanto ar asīm, ir šāda:-

plt.bar(x, height, width, bottom, align) 

Funkcija atkarībā no dotajiem parametriem izveido joslu diagrammu, ko ierobežo taisnstūris. Tālāk ir sniegts vienkāršs joslas diagrammas piemērs, kas atspoguļo dažādos institūta kursos uzņemto studentu skaitu.



Python3




import> numpy as np> import> matplotlib.pyplot as plt> > # creating the dataset> data> => {> 'C'> :> 20> ,> 'C++'> :> 15> ,> 'Java'> :> 30> ,> > 'Python'> :> 35> }> courses> => list> (data.keys())> values> => list> (data.values())> > fig> => plt.figure(figsize> => (> 10> ,> 5> ))> # creating the bar plot> plt.bar(courses, values, color> => 'maroon'> ,> > width> => 0.4> )> plt.xlabel(> 'Courses offered'> )> plt.ylabel(> 'No. of students enrolled'> )> plt.title(> 'Students enrolled in different courses'> )> plt.show()>

Izvade-

Šeit plt.bar(kursi, vērtības, krāsa='maroon') tiek izmantots, lai norādītu, ka joslu diagramma ir jāatzīmē, izmantojot kursu kolonnu kā X asi un vērtības kā Y asi. Krāsu atribūts tiek izmantots, lai iestatītu joslu krāsu (šajā gadījumā sarkanbrūns).plt.xlabel(piedāvātie kursi) un plt.ylabel(pieņemtie studenti) tiek izmantoti, lai atzīmētu atbilstošās axes.plt.title() tiek izmantota, lai izveidot nosaukumu graph.plt.show() tiek izmantots, lai parādītu grafiku kā izvadi, izmantojot iepriekšējās komandas.

Bāra sižeta pielāgošana

Python3




import> pandas as pd> from> matplotlib> import> pyplot as plt> # Read CSV into pandas> data> => pd.read_csv(r> 'cars.csv'> )> data.head()> df> => pd.DataFrame(data)> name> => df[> 'car'> ].head(> 12> )> price> => df[> 'price'> ].head(> 12> )> # Figure Size> fig> => plt.figure(figsize> => (> 10> ,> 7> ))> # Horizontal Bar Plot> plt.bar(name[> 0> :> 10> ], price[> 0> :> 10> ])> # Show Plot> plt.show()>

Izvade:

Iepriekš redzamajā joslu diagrammā ir redzams, ka X-ass atzīmes pārklājas viena ar otru, tāpēc to nevar pareizi redzēt. Tādējādi, pagriežot X ass atzīmes, to var skaidri redzēt. Tāpēc ir nepieciešama pielāgošana joslu diagrammās.

Python3




import> pandas as pd> from> matplotlib> import> pyplot as plt> # Read CSV into pandas> data> => pd.read_csv(r> 'cars.csv'> )> data.head()> df> => pd.DataFrame(data)> name> => df[> 'car'> ].head(> 12> )> price> => df[> 'price'> ].head(> 12> )> # Figure Size> fig, ax> => plt.subplots(figsize> => (> 16> ,> 9> ))> # Horizontal Bar Plot> ax.barh(name, price)> # Remove axes splines> for> s> in> [> 'top'> ,> 'bottom'> ,> 'left'> ,> 'right'> ]:> > ax.spines[s].set_visible(> False> )> # Remove x, y Ticks> ax.xaxis.set_ticks_position(> 'none'> )> ax.yaxis.set_ticks_position(> 'none'> )> # Add padding between axes and labels> ax.xaxis.set_tick_params(pad> => 5> )> ax.yaxis.set_tick_params(pad> => 10> )> # Add x, y gridlines> ax.grid(b> => True> , color> => 'grey'> ,> > linestyle> => '-.'> , linewidth> => 0.5> ,> > alpha> => 0.2> )> # Show top values> ax.invert_yaxis()> # Add annotation to bars> for> i> in> ax.patches:> > plt.text(i.get_width()> +> 0.2> , i.get_y()> +> 0.5> ,> > str> (> round> ((i.get_width()),> 2> )),> > fontsize> => 10> , fontweight> => 'bold'> ,> > color> => 'grey'> )> # Add Plot Title> ax.set_title(> 'Sports car and their price in crore'> ,> > loc> => 'left'> , )> # Add Text watermark> fig.text(> 0.9> ,> 0.15> ,> 'Jeeteshgavande30'> , fontsize> => 12> ,> > color> => 'grey'> , ha> => 'right'> , va> => 'bottom'> ,> > alpha> => 0.7> )> # Show Plot> plt.show()>

Izvade:

Bāru zemes gabaliem ir pieejami daudz vairāk pielāgojumu.

Vairāki joslu gabali

Salīdzinot datu kopu, kad mainās viens mainīgais, tiek izmantoti vairāki joslu diagrammi. Mēs to varam viegli pārvērst kā sakrautu apgabalu joslu diagrammu, kur katra apakšgrupa tiek parādīta viena virs citām. To var attēlot, mainot stieņu biezumu un novietojumu. Sekojošā joslu diagramma parāda inženierzinātņu nozarē nokārtoto studentu skaitu:

Python3




import> numpy as np> import> matplotlib.pyplot as plt> # set width of bar> barWidth> => 0.25> fig> => plt.subplots(figsize> => (> 12> ,> 8> ))> # set height of bar> IT> => [> 12> ,> 30> ,> 1> ,> 8> ,> 22> ]> ECE> => [> 28> ,> 6> ,> 16> ,> 5> ,> 10> ]> CSE> => [> 29> ,> 3> ,> 24> ,> 25> ,> 17> ]> # Set position of bar on X axis> br1> => np.arange(> len> (IT))> br2> => [x> +> barWidth> for> x> in> br1]> br3> => [x> +> barWidth> for> x> in> br2]> # Make the plot> plt.bar(br1, IT, color> => 'r'> , width> => barWidth,> > edgecolor> => 'grey'> , label> => 'IT'> )> plt.bar(br2, ECE, color> => 'g'> , width> => barWidth,> > edgecolor> => 'grey'> , label> => 'ECE'> )> plt.bar(br3, CSE, color> => 'b'> , width> => barWidth,> > edgecolor> => 'grey'> , label> => 'CSE'> )> # Adding Xticks> plt.xlabel(> 'Branch'> , fontweight> => 'bold'> , fontsize> => 15> )> plt.ylabel(> 'Students passed'> , fontweight> => 'bold'> , fontsize> => 15> )> plt.xticks([r> +> barWidth> for> r> in> range> (> len> (IT))],> > [> '2015'> ,> '2016'> ,> '2017'> ,> '2018'> ,> '2019'> ])> plt.legend()> plt.show()>

Izvade:

Sakrauts bāra gabals

Sakrauti joslu diagrammas attēlo dažādas grupas viena virs otras. Stieņa augstums ir atkarīgs no iegūtā grupu rezultātu kombinācijas augstuma. Tas iet no apakšas uz vērtību, nevis pāriet no nulles uz vērtību. Sekojošais joslu grafiks atspoguļo zēnu un meiteņu ieguldījumu komandā.

Python3




import> numpy as np> import> matplotlib.pyplot as plt> N> => 5> boys> => (> 20> ,> 35> ,> 30> ,> 35> ,> 27> )> girls> => (> 25> ,> 32> ,> 34> ,> 20> ,> 25> )> boyStd> => (> 2> ,> 3> ,> 4> ,> 1> ,> 2> )> girlStd> => (> 3> ,> 5> ,> 2> ,> 3> ,> 3> )> ind> => np.arange(N)> width> => 0.35> fig> => plt.subplots(figsize> => (> 10> ,> 7> ))> p1> => plt.bar(ind, boys, width, yerr> => boyStd)> p2> => plt.bar(ind, girls, width,> > bottom> => boys, yerr> => girlStd)> plt.ylabel(> 'Contribution'> )> plt.title(> 'Contribution by the teams'> )> plt.xticks(ind, (> 'T1'> ,> 'T2'> ,> 'T3'> ,> 'T4'> ,> 'T5'> ))> plt.yticks(np.arange(> 0> ,> 81> ,> 10> ))> plt.legend((p1[> 0> ], p2[> 0> ]), (> 'boys'> ,> 'girls'> ))> plt.show()>

Izvade-



Top Raksti

Kategorija

Interesanti Raksti