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