logo

Bar Plot i Matplotlib

Et stolpeplott eller stolpediagram er en graf som representerer kategorien data med rektangulære stolper med lengder og høyder som er proporsjonale med verdiene de representerer. Barplottene kan plottes horisontalt eller vertikalt. Et søylediagram beskriver sammenligningene mellom de diskrete kategoriene. En av aksene i plottet representerer de spesifikke kategoriene som sammenlignes, mens den andre aksen representerer de målte verdiene som tilsvarer disse kategoriene.

Opprette en bartomt

De matplotlib API i Python gir bar()-funksjonen som kan brukes i MATLAB-stilbruk eller som et objektorientert API. Syntaksen til bar()-funksjonen som skal brukes med aksene er som følger:-



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

Funksjonen lager et søyleplott avgrenset med et rektangel avhengig av de gitte parameterne. Følgende er et enkelt eksempel på barplotten, som representerer antall studenter som er påmeldt til forskjellige kurs ved et institutt.

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

>

array liste java

>

Produksjon-

Her brukes plt.bar(courses, values, color=’maroon’) for å spesifisere at søylediagrammet skal plottes ved å bruke kurskolonnen som X-aksen, og verdiene som Y-aksen. Fargeattributtet brukes til å angi fargen på søylene (rødbrun i dette tilfellet). lage en tittel for graph.plt.show() brukes til å vise grafen som utdata ved å bruke de forrige kommandoene.

Tilpassing av barplottet

Python3

saira banu skuespiller




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

>

>

Produksjon:

Det er observert i søylediagrammet ovenfor at X-akseflåttene overlapper hverandre, og kan derfor ikke ses ordentlig. Ved å rotere X-aksen kan den derfor være tydelig synlig. Det er derfor det kreves tilpasning i søylediagrammer.

Python3

mysql brukerliste




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

>

>

Produksjon:

Det er mange flere tilpasninger tilgjengelig for bartomter.

Flere bartomter

Flere søyleplott brukes når sammenligning mellom datasettet skal gjøres når en variabel endres. Vi kan enkelt konvertere det til et stablet område-stolpediagram, der hver undergruppe vises med én over de andre. Det kan plottes ved å variere tykkelsen og plasseringen av stengene. Følgende søylediagram viser antall beståtte studenter i ingeniørfaget:

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

>

>

Produksjon:

scan.nextstring java

Stablet bartomt

Stablede søyleplott representerer ulike grupper oppå hverandre. Høyden på stolpen avhenger av den resulterende høyden på kombinasjonen av resultatene fra gruppene. Den går fra bunnen til verdien i stedet for å gå fra null til verdi. Følgende søyleplott representerer bidraget til gutter og jenter i laget.

tom liste java

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

>

>

Produksjon-