小提琴圖的繪製方法:Python matplotlib實現

瘋狂學習GIS發表於2023-10-16

  本文介紹基於Pythonmatplotlib模組與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_1li_2li_3是三個列表,其各自的元素個數可以相同,也可以不同,我們稍後需要分別對三者中的資料繪製小提琴圖;plt.figure(dpi = 300)表示設定繪圖的DPI300,其後的第一句程式碼plt.rcParams["font.family"] = "SimSun"表示圖片中的圖例、座標軸標籤與刻度標籤都用宋體來表示,第二句程式碼plt.rcParams["axes.unicode_minus"] = False是為了防止圖中出現無法繪製負號的情況;隨後,label表示刻度標籤的具體內容,font_1來設定座標軸標籤的字型大小。

  接下來,我們即可透過sns.violinplot()函式繪製小提琴圖;這一函式還有很多引數,可以調整小提琴圖的各項視覺化配置,具體大家可以檢視函式的官方幫助文件。隨後,透過plt.xlabel()函式、plt.xticks()函式等調整圖片座標軸標籤、刻度標籤的具體配置。最後,透過plt.savefig()函式將繪製好的小提琴圖儲存在指定路徑中。

  至此,大功告成。

相關文章