本文介紹基於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()
函式將繪製好的小提琴圖儲存在指定路徑中。
至此,大功告成。