A Plot de caixa també es coneix com Trama de bigotis es crea per mostrar el resum del conjunt de valors de dades amb propietats com mínim, primer quartil, mediana, tercer quartil i màxim. En el diagrama de caixa, es crea una caixa des del primer quartil fins al tercer quartil, també hi ha una línia vertical que passa per la caixa a la mitjana. Aquí l'eix x indica les dades que s'han de representar mentre que l'eix y mostra la distribució de freqüència.
Creació de Box Plot
El mòdul matplotlib.pyplot de la biblioteca matplotlib proporciona la funció boxplot() amb l'ajuda de la qual podem crear diagrames de caixa.
Sintaxi:
matplotlib.pyplot.boxplot(dades, notch=Cap, vert=Cap, patch_artist=Cap, amples=Cap)
Paràmetres:
| Atribut | Valor |
|---|---|
| dades | matriu o seqüència de matriu que s'ha de representar |
| osca | El paràmetre opcional accepta valors booleans |
| Verd | El paràmetre opcional accepta valors booleans fals i true per a la trama horitzontal i vertical respectivament |
| bootstrap | El paràmetre opcional accepta int especifica intervals al voltant dels diagrames de caixa amb osques |
| usuaris mitjans | El paràmetre opcional accepta matriu o seqüència de dimensió de matriu compatible amb les dades |
| posicions | El paràmetre opcional accepta la matriu i estableix la posició de les caixes |
| amplades | El paràmetre opcional accepta la matriu i estableix l'amplada de les caixes |
| patch_artist | paràmetre opcional amb valors booleans |
| etiquetes | seqüència de conjunts de cadenes etiqueta per a cada conjunt de dades |
| línia mitjana | opcional que tingui un valor booleà, intenteu representar la línia mitjana com a amplada completa del quadre |
| ordre | el paràmetre opcional estableix l'ordre del diagrama de caixa |
Els valors de dades donats al mètode ax.boxplot() poden ser una matriu Numpy o una llista Python o una tupla de matrius. Creem el diagrama de caixa utilitzant numpy.random.normal() per crear algunes dades aleatòries, es pren la mitjana, la desviació estàndard i el nombre desitjat de valors com a arguments.
Exemple:
Python 3
# Import libraries> import> matplotlib.pyplot as plt> import> numpy as np> # Creating dataset> np.random.seed(>10>)> data>=> np.random.normal(>100>,>20>,>200>)> fig>=> plt.figure(figsize>=>(>10>,>7>))> # Creating plot> plt.boxplot(data)> # show plot> plt.show()> |
>
>
Sortida:

Personalització de Box Plot
El matplotlib.pyplot.boxplot() ofereix infinites possibilitats de personalització al diagrama de caixa. L'atribut notch = True crea el format de notch al diagrama de caixa, patch_artist = True omple el diagrama de caixa amb colors, podem establir diferents colors a diferents caixes. L'atribut vert = 0 crea un diagrama de caixa horitzontal. les etiquetes prenen les mateixes dimensions que els conjunts de dades de nombres.
Exemple 1:
java convertint nombre enter en cadena
Python 3
# Import libraries> import> matplotlib.pyplot as plt> import> numpy as np> # Creating dataset> np.random.seed(>10>)> data_1>=> np.random.normal(>100>,>10>,>200>)> data_2>=> np.random.normal(>90>,>20>,>200>)> data_3>=> np.random.normal(>80>,>30>,>200>)> data_4>=> np.random.normal(>70>,>40>,>200>)> data>=> [data_1, data_2, data_3, data_4]> fig>=> plt.figure(figsize>=>(>10>,>7>))> # Creating axes instance> ax>=> fig.add_axes([>0>,>0>,>1>,>1>])> # Creating plot> bp>=> ax.boxplot(data)> # show plot> plt.show()> |
>
>
Sortida:

Exemple 2: Intentem modificar la trama anterior amb algunes de les personalitzacions:
Python 3
# Import libraries> import> matplotlib.pyplot as plt> import> numpy as np> # Creating dataset> np.random.seed(>10>)> data_1>=> np.random.normal(>100>,>10>,>200>)> data_2>=> np.random.normal(>90>,>20>,>200>)> data_3>=> np.random.normal(>80>,>30>,>200>)> data_4>=> np.random.normal(>70>,>40>,>200>)> data>=> [data_1, data_2, data_3, data_4]> fig>=> plt.figure(figsize>=>(>10>,>7>))> ax>=> fig.add_subplot(>111>)> # Creating axes instance> bp>=> ax.boxplot(data, patch_artist>=> True>,> >notch>=>'True'>, vert>=> 0>)> colors>=> [>'#0000FF'>,>'#00FF00'>,> >'#FFFF00'>,>'#FF00FF'>]> for> patch, color>in> zip>(bp[>'boxes'>], colors):> >patch.set_facecolor(color)> # changing color and linewidth of> # whiskers> for> whisker>in> bp[>'whiskers'>]:> >whisker.>set>(color>=>'#8B008B'>,> >linewidth>=> 1.5>,> >linestyle>=>':'>)> # changing color and linewidth of> # caps> for> cap>in> bp[>'caps'>]:> >cap.>set>(color>=>'#8B008B'>,> >linewidth>=> 2>)> # changing color and linewidth of> # medians> for> median>in> bp[>'medians'>]:> >median.>set>(color>=>'red'>,> >linewidth>=> 3>)> # changing style of fliers> for> flier>in> bp[>'fliers'>]:> >flier.>set>(marker>=>'D'>,> >color>=>'#e7298a'>,> >alpha>=> 0.5>)> > # x-axis labels> ax.set_yticklabels([>'data_1'>,>'data_2'>,> >'data_3'>,>'data_4'>])> # Adding title> plt.title(>'Customized box plot'>)> # Removing top axes and right axes> # ticks> ax.get_xaxis().tick_bottom()> ax.get_yaxis().tick_left()> > # show plot> plt.show()> |
>
>
Sortida:
