openpyxl 绘制饼形图_好享学丨快速上手Pythonmatplotlib 箱线图绘制,学术人必备
生活随笔
收集整理的這篇文章主要介紹了
openpyxl 绘制饼形图_好享学丨快速上手Pythonmatplotlib 箱线图绘制,学术人必备
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
好享學(xué)是高下制圖推出的關(guān)于數(shù)據(jù)可視化經(jīng)驗分享欄目,我們將定期與您分享各界優(yōu)秀人士的制圖經(jīng)驗,一同學(xué)習(xí)。
01. 引言
箱線圖(Boxplot)??是一種用作顯示一組數(shù)據(jù)分散情況資料的統(tǒng)計圖表,本期推文就如何使用matplotlib和seaborn 繪制出高度定制化的箱線圖做出詳細(xì)的講解。02. 箱線圖基本介紹
箱線圖,又稱箱形圖(boxplot)或盒式圖,不同于一般的折線圖、柱狀圖或餅圖等圖表,其包含一些統(tǒng)計學(xué)的均值、分位數(shù)、極值等統(tǒng)計量,該圖信息量較大,不僅能夠分析不同類別數(shù)據(jù)平均水平差異,還能揭示數(shù)據(jù)間離散程度、異常值、分布差異等。具體含義可通過如下圖表進(jìn)行說明:(以上圖來源于網(wǎng)絡(luò),如侵權(quán),望告知,刪除)03. matplotlib繪制
Matplotlib 中繪制箱線圖的函數(shù)為 boxplot (),但要想進(jìn)行定制化繪制需求,則需設(shè)置較多的繪圖參數(shù),boxplot()基本語法如下:下面就常用的屬性進(jìn)行介紹:參數(shù)? ? ? ? ? ? ? ? ? ? ? ? ? ?說明????x ?? ? ? ? ? ? ? ? ? ? ? ? 指定要繪制箱線圖的數(shù)據(jù)? ? ? ?notch ?? ? ? ? ? ? ? ? 是否是凹口的形式展現(xiàn)箱線圖???sym? ? ? ? ? ? ? ? ? ? ?指定異常點的形狀??????vert? ? ? ? ? ? ? ? ? ? ?是否需要將箱線圖垂直擺放? ? ? ?whis ?? ? ? ? ? ? ? ? ? 指定上下須與上下四分位的距離??????positions ?? ? ? ? ? ?指定箱線圖的位置??????widths? ? ? ? ? ? ? ? ?指定箱線圖的寬度??????patch_artist? ? ? ? 是否填充箱體的顏色;??????meanline? ? ? ? ? ? 是否用線的形式表示均值???showmeans? ? ? ?是否顯示均值??????showcaps ?? ? ? ? 是否顯示箱線圖頂端和末端的兩條線showbox? ? ? ? ? ?是否顯示箱線圖的箱體showfliers? ? ? ? ?是否顯示異常值boxprops? ? ? ? ? 設(shè)置箱體的屬性,如邊框色,填充色等labels ?? ? ? ? ? ? ? 為箱線圖添加標(biāo)簽filerprops? ? ? ? ? 設(shè)置異常值的屬性medianprops? ? 設(shè)置中位數(shù)的屬性meanprops? ? ? ?設(shè)置均值的屬性capprops? ? ? ? ? 設(shè)置箱線圖頂端和末端線條的屬性whiskerprops? ? 設(shè)置須的屬性2.1? 數(shù)據(jù)現(xiàn)有數(shù)如下(部分):詳細(xì)繪制代碼如下:import matplotlib.pyplot as pltbox_1 = data_box['box01']box_2 = data_box['box02']plt.rcParams['font.family'] = ["Times New Roman"]fig, ax = plt.subplots(figsize=(6,4),dpi=200)box_plot01 = ax.boxplot(box_1,positions =[1],patch_artist = True,widths=0.4,vert=False, boxprops={'color':'black','facecolor':'dimgray','lw':0.7}, medianprops={'color':'black'}, capprops={'color':'black','lw':.9}, whiskerprops={'color':'black','lw':0.9}, flierprops={'lw':.8,'alpha':.7,'markersize':3.5,'marker':'d'})box_plot02 = ax.boxplot(box_2,positions =[2],patch_artist = True,widths=0.4,vert=False, boxprops={'color':'black','facecolor':'darkgray','lw':0.7}, medianprops={'color':'black'}, capprops={'color':'black','lw':.9}, whiskerprops={'color':'black','lw':0.9}, flierprops={'lw':.8,'alpha':.5,'markersize':3.5,'marker':'d'})#添加圖例ax.legend([box_plot01["boxes"][0], box_plot02["boxes"][0]], ['Train sample', 'Test_sample'], loc='upper right',frameon=False)#設(shè)置刻度屬性ax.tick_params(left=True,bottom=True,direction='in',labelsize=12)#設(shè)置y軸范圍ax.set_ylim(.5,2.8)#設(shè)置y軸刻度labelax.set_yticklabels([])#設(shè)置x、y軸fontdict1 = {"size":13,"color":"k",'family':'Times New Roman'}ax.set_xlabel("Values", fontdict=fontdict1)ax.set_ylabel("Different Type Data ", fontdict=fontdict1)#添加序號ax.set_title('Box plots for different types data\n',fontsize=15)text_font = {'family':'Times New Roman','size':'22','weight':'bold','color':'black'}ax.text(.02,.9,"(a)",transform = ax.transAxes,fontdict=text_font,zorder=4)ax.text(.8,.056,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 8.5,color='black')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\學(xué)術(shù)圖表繪制\boxplot_region.png',width=6,height=4, dpi=900,bbox_inches='tight')plt.show()#顯示圖像可以看出,在對boxplot進(jìn)行定制化需求時,也只是對基本的填充顏色、線寬、線類型、異常點的顏色、形狀、透明度等基本設(shè)置。具體操作不是很難,可能就是需要設(shè)置較多的參數(shù)。結(jié)果如下:注意,這里盒子的填充顏色選擇了"灰色系"的顏色進(jìn)行填充,這對學(xué)術(shù)圖表是比較友好的,具體的顏色系可以參看下圖?:建議大家在繪制學(xué)術(shù)圖表時,多采用紅色方框中的色系。(感覺沒有g(shù)gplot2的grey20,grey30等好記啊)04.?seaborn 繪制
相對于matplotlib 大量的繪圖屬性需要設(shè)置,python統(tǒng)計繪圖庫seaborn繪制箱線圖代碼量則少很多,但要想繪制不同類別數(shù)據(jù)箱線圖,則需對數(shù)據(jù)添加類別標(biāo)簽,如下:具體繪制代碼如下:plt.rcParams['font.family'] = ["Times New Roman"]fig, ax = plt.subplots(figsize=(6,4),dpi=200)palette = ['dimgray','darkgray']sns_box = sns.boxplot(x=plot_data['AOD_550nm'],y=plot_data['Type'],hue=plot_data['Type'], palette=palette,dodge=False,width=.4,ax=ax)#去除圖例titleax.legend(frameon=False).set_title("")ax.tick_params(left=True,bottom=True,direction='in',labelsize=12)ax.set_yticklabels([])ax.set_ylabel("Different Type Data ", fontdict=fontdict1)ax.set_xlabel("Values",fontdict=fontdict1)ax.set_title('Box plots for different types data\n',fontsize=15)ax.text(.02,.9,"(a)",transform = ax.transAxes,fontdict=text_font,zorder=4)ax.text(.8,.056,'\nVisualization by DataCharm',transform = ax.transAxes, ha='center', va='center',fontsize = 8.5,color='black')plt.savefig(r'E:\Data_resourses\DataCharm 公眾號\Python\學(xué)術(shù)圖表繪制\boxplot_sns.png',width=6,height=4, dpi=900,bbox_inches='tight')結(jié)果如下:當(dāng)然,你還可以通過設(shè)置seaborn或matplotlib的主題,繪制不同風(fēng)格的圖表,如下:在當(dāng)類別數(shù)據(jù)較多時,你也可以將箱線圖垂直繪制,如下:???
彩蛋分享
悄悄告訴你,來高下制圖,小白也能擁有高大上箱線圖哦!快掃碼加入內(nèi)測群,更有制圖大牛帶飛和我們一起學(xué)習(xí)進(jìn)步吧~
還在為如何制作精美圖表苦惱頭禿么?全新推出高下制圖app,不斷更新的制圖模板,隨心更改樣式,輕松一鍵制圖。現(xiàn)在積極參與高下制圖內(nèi)測,更有機(jī)會獲得正式版會員,享受輕松作圖哦。更多詳情請掃碼進(jìn)群了解。往期推薦
新世野丨數(shù)據(jù)呈現(xiàn)是如何「PUA」讀者的?心理學(xué)這樣解答
好享學(xué)|年末巨制,這些關(guān)于GIS的算法錯過就是又一年!
新世野|經(jīng)濟(jì)學(xué)人如何利用圖表,辯解英國貧富差距過大的事實
好享學(xué)|R語言保姆式教程,手把手教你繪制統(tǒng)計圖表!30個統(tǒng)計圖繪制原理+使用場景+code
好享學(xué) | 畫了這么多年的條形圖,你不會連這都不知道吧!
“在看”嗎?在看就點一下吧 創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的openpyxl 绘制饼形图_好享学丨快速上手Pythonmatplotlib 箱线图绘制,学术人必备的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 估价高达333万!苹果初代计算机Appl
- 下一篇: python3.7下载教程视频_视频 |