本文介紹基於Python中matplotlib模塊與seaborn模塊,利用多個列表中的數據,繪製小提琴圖(Violin Plot)的方法~ ...
本文介紹基於Python中matplotlib
模塊與seaborn
模塊,利用多個列表中的數據,繪製小提琴圖(Violin Plot)的方法。
小提琴圖作為一種將箱型圖與核密度圖分別所能表達的信息相結合的數據可視化圖,在數據分析中得以廣泛應用;本文就詳細介紹在Python中,對存儲於多個列表(List)中的數據,繪製小提琴圖的方法。其中,繪製得到的結果如下圖所示。
本文用到的完整代碼如下所示。
# -*- coding: utf-8 -*-
"""
Created on Thu Dec 1 18:55:01 2022
@author: fkxxgis
"""
import matplotlib.pylab as plt
import seaborn as sns
import pandas as pd
pic_save_name = "E:/Pic/Violin.png"
li_1 = [1, 2, 3]
li_2 = [2.5, 5, 10, 8, 4, 5, 9, 9.5]
li_3 = [1.5, 2.5, 3.5, 6.5]
plt.figure(dpi = 300)
plt.rcParams["font.family"] = "SimSun"
plt.rcParams["axes.unicode_minus"] = False
label = ["第一個刻度標簽", "第二個刻度標簽", "第三個刻度標簽"]
font_1 = {"size": 14}
sns.violinplot(data = [li_1, li_2, li_3])
plt.xlabel("橫坐標標簽", font_1)
plt.ylabel("縱坐標標簽", font_1)
plt.xticks(ticks = [0, 1, 2], labels = label, fontsize = 11)
plt.yticks(fontsize = 12)
plt.savefig(pic_save_name)
plt.show()
其中,pic_save_name
表示我們繪圖完畢後,保存圖片的路徑;li_1
、li_2
與li_3
是三個列表,其各自的元素個數可以相同,也可以不同,我們稍後需要分別對三者中的數據繪製小提琴圖;plt.figure(dpi = 300)
表示設置繪圖的DPI為300
,其後的第一句代碼plt.rcParams["font.family"] = "SimSun"
表示圖片中的圖例、坐標軸標簽與刻度標簽都用宋體來表示,第二句代碼plt.rcParams["axes.unicode_minus"] = False
是為了防止圖中出現無法繪製負號的情況;隨後,label
表示刻度標簽的具體內容,font_1
來設置坐標軸標簽的字體大小。
接下來,我們即可通過sns.violinplot()
函數繪製小提琴圖;這一函數還有很多參數,可以調整小提琴圖的各項可視化配置,具體大家可以查看函數的官方幫助文檔。隨後,通過plt.xlabel()
函數、plt.xticks()
函數等調整圖片坐標軸標簽、刻度標簽的具體配置。最後,通過plt.savefig()
函數將繪製好的小提琴圖保存在指定路徑中。
至此,大功告成。