Bar Plot v Matplotlib

Bar Plot v Matplotlib

Sloupcový graf je graf, který představuje kategorii dat s pravoúhlými pruhy s délkami a výškami, které jsou úměrné hodnotám, které představují. Tyčové grafy lze vykreslovat vodorovně nebo svisle. Sloupcový graf popisuje srovnání mezi jednotlivými kategoriemi. Jedna z os grafu představuje konkrétní porovnávané kategorie, zatímco druhá osa představuje naměřené hodnoty odpovídající těmto kategoriím.

Vytvoření barového pozemku

The matplotlib API v Pythonu poskytuje funkci bar(), kterou lze použít ve stylu MATLABu nebo jako objektově orientované API. Syntaxe funkce bar() pro použití s ​​osami je následující: -

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

Funkce vytvoří sloupcový graf ohraničený obdélníkem v závislosti na zadaných parametrech. Následuje jednoduchý příklad barového grafu, který představuje počet studentů zapsaných do různých kurzů institutu.



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()>

Výstup-

Zde se plt.bar(kurzy, hodnoty, barva=’hnědá’) používá k určení, že se má sloupcový graf vykreslit pomocí sloupce kurzů jako osy X a hodnot jako osy Y. Atribut color se používá k nastavení barvy pruhů (v tomto případě kaštanové).plt.xlabel(nabízené kurzy) a plt.ylabel(zapsaní studenti) se používají k označení odpovídajících axes.plt.title() make titulek pro graph.plt.show() se používá k zobrazení grafu jako výstupu pomocí předchozích příkazů.

Přizpůsobení barového pozemku

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()>

Výstup:

Na výše uvedeném sloupcovém grafu je vidět, že klíšťata na ose X se vzájemně překrývají, takže je nelze správně vidět. Otáčením dílků osy X může být jasně viditelný. To je důvod, proč je vyžadováno přizpůsobení ve sloupcových grafech.

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()>

Výstup:

Pro barové grafy je k dispozici mnoho dalších přizpůsobení.

Více barových grafů

Více sloupcových grafů se používá, když se má provést srovnání mezi souborem dat, když se mění jedna proměnná. Můžeme jej snadno převést jako skládaný plošný pruhový graf, kde je každá podskupina zobrazena po jedné nad ostatními. Lze jej vykreslit změnou tloušťky a polohy tyčí. Následující sloupcový graf ukazuje počet studentů, kteří prošli ve strojírenském oboru:

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()>

Výstup:

Skládaný barový pozemek

Skládané pruhové grafy představují různé skupiny nad sebou. Výška lišty závisí na výsledné výšce kombinace výsledků skupin. Jde zespodu k hodnotě namísto přechodu od nuly k hodnotě. Následující barový graf představuje přínos chlapců a dívek v týmu.

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()>

Výstup-



Nejlepší Články

Kategorie

Zajímavé Články