Stĺpcový graf alebo stĺpcový graf je graf, ktorý predstavuje kategóriu údajov s obdĺžnikovými pruhmi s dĺžkami a výškami, ktoré sú úmerné hodnotám, ktoré predstavujú. Tyčové pozemky je možné vykresliť horizontálne alebo vertikálne. Stĺpcový graf popisuje porovnania medzi jednotlivými kategóriami. Jedna z osi grafu predstavuje konkrétne porovnávané kategórie, zatiaľ čo druhá os predstavuje namerané hodnoty zodpovedajúce týmto kategóriám.
Vytvorenie barového pozemku
The matplotlib API v Pythone poskytuje funkciu bar(), ktorú možno použiť v štýle MATLABu alebo ako objektovo orientované API. Syntax funkcie bar(), ktorá sa má použiť s osami, je nasledovná: -
plt.bar(x, height, width, bottom, align)>
Funkcia vytvorí stĺpcový graf ohraničený obdĺžnikom v závislosti od daných parametrov. Nasleduje jednoduchý príklad barového grafu, ktorý predstavuje počet študentov zapísaných do rôznych kurzov inštitútu.
Python3
anonymná funkcia java
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ýkon-
Tu sa plt.bar(kurzy, hodnoty, farba=’gaštanová’) používa na určenie, že stĺpcový graf sa má vykresliť pomocou stĺpca kurzov ako osi X a hodnôt ako osi Y. Atribút color sa používa na nastavenie farby pruhov (v tomto prípade gaštanovej farby).plt.xlabel(Ponúkané kurzy) a plt.ylabel(zapísaní študenti) sa používajú na označenie zodpovedajúcich osí.plt.title() make title for graph.plt.show() sa používa na zobrazenie grafu ako výstupu pomocou predchádzajúcich príkazov.
Prispôsobenie 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ýkon:
čo robí počítač rýchlym
Vo vyššie uvedenom stĺpcovom grafe je pozorované, že značky osi X sa navzájom prekrývajú, takže ich nie je možné správne vidieť. Otáčaním kliešťov na osi X môže byť jasne viditeľná. Preto je potrebné prispôsobenie stĺpcových grafov.
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ýkon:
Pre barové grafy je k dispozícii mnoho ďalších prispôsobení.
Viaceré barové grafy
Viacnásobné stĺpcové grafy sa používajú, keď sa má vykonať porovnanie medzi súborom údajov, keď sa mení jedna premenná. Môžeme ho jednoducho previesť ako skladaný plošný stĺpcový graf, kde je každá podskupina zobrazená po jednej nad ostatnými. Dá sa vykresliť zmenou hrúbky a polohy tyčí. Nasledujúci stĺpcový graf zobrazuje počet absolvovaných študentov v inžinierskom odbore:
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ýkon:
Skladaný barový pozemok
Skladané stĺpcové grafy predstavujú rôzne skupiny nad sebou. Výška lišty závisí od výslednej výšky kombinácie výsledkov skupín. Ide od spodu k hodnote namiesto toho, aby šiel od nuly k hodnote. Nasledujúci stĺpcový graf predstavuje prínos chlapcov a dievčat v tíme.
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()> |
>
tučný text css
>
Výkon-