1. 程式人生 > >python—matplotlib資料視覺化例項註解系列-----之箱狀圖

python—matplotlib資料視覺化例項註解系列-----之箱狀圖

本文程式碼源自官方例項,部分進行了修改和註解,幫助學習和查詢。


import numpy as np
import matplotlib.pyplot as plt
#隨機生成一組資料73行,4列,正態分佈,期望為1.5,標準差1.75
data = np.random.lognormal(size=(37,4), mean=1.5, sigma=1.75)
labels = list('ABCD')  # 設定資料標籤
fs = 10  # fontsize字型大小

# 建立一張有多個子圖組成的圖表,2行,3列,
fig, axes = plt.subplots(nrows=2, ncols=3, figsize=(6,6), sharey=True)

#不同顯示風格的設定
axes[0,0].boxplot(data, labels=labels)
axes[0,0].set_title('Default', fontsize=fs)

axes[0,1].boxplot(data, labels=labels, showmeans=True)
axes[0,1].set_title('showmeans=True', fontsize=fs)

axes[0,2].boxplot(data, labels=labels, showmeans=True, meanline=True)
axes[0,2].set_title('showmeans=True,\nmeanline=True', fontsize=fs)
# 不顯示box,showcaps顯示末端的橫線
axes[1,0].boxplot(data, labels=labels, showbox=False, showcaps=False)
tufte_title = 'TufteStyle \n(showbox=False,\nshowcaps=False)'
axes[1,0].set_title(tufte_title, fontsize=fs)

# notch顯示凹形box,bootstrap是notch的設定引數
axes[1,1].boxplot(data, labels=labels, notch=True, bootstrap=10000)
axes[1,1].set_title('notch=True,\nbootstrap=10000', fontsize=fs)
# showfliers顯示異常值
axes[1,2].boxplot(data, labels=labels, showfliers=False)
axes[1,2].set_title('showfliers=False', fontsize=fs)

#y軸顯示對數座標,標籤為空
for ax inaxes.flatten():
    ax.set_yscale('log')
    ax.set_yticklabels([])
#設定影象上部的間隔
fig.subplots_adjust(hspace=0.5)
plt.show()
執行結果: