天天看點

保姆級matplotlib柱狀圖繪制

文檔說明

此文檔主要記錄在使用

matplotlib

庫中出現的問題,給出相關代碼段。便于查閱

設定顯示中文

注意: 在設定中文顯示時需注意電腦中必須包含有改字型,采用

docker

繪圖時遇到設定字型不起作用的情況,主要是因為docker環境中未安裝此字型
import matplotlib as mpl
mpl.rcParams['font.sans-serif'] = ['SimHei']  # 設定字型為微軟雅黑
mpl.rcParams['font.serif'] = ['SimHei']
           

采用子圖方式繪制柱狀圖

import pandas as pd
sub_res = pd.read_csv('you file path.csv')
labels = sub_res.index                  # 設定X軸坐标
x = np.arange(len(labels))*5            # 設定X軸繪圖間隔
width = 0.75                            # 以柱狀圖為例,柱狀圖要素偏倚距離

fig, ax = plt.subplots(figsize=(10,8))  # 指定子圖尺寸
ax.spines['right'].set_visible(False)   # 設定是否顯示邊框
ax.spines['top'].set_visible(False)
ax.spines['left'].set_visible(False)
ax.spines['bottom'].set_visible(False)

rects1 = ax.bar(x-w,sub_res.POD, label='命中率')   # x-w指定了該柱狀圖在x軸位置,label在指定顯示圖例時會作為圖例顯示
rects2 = ax.bar(x, ...)  # 柱狀圖寬度為0.75,設定w為0.75保證rects1、rects2不重疊
ax.set_title('your fig title')

ax.grid()                               # 顯示網格線
ax.set_ylim(0,1,0.2)                    # 設定y軸坐标範圍及間距
ax.set_xticks(x)                        # 設定x刻度位置
ax.set_xlabel("your x text")            # 設定x文本
ax.set_xticklabels(labels)              # 使用字元串标簽清單設定xaxis标簽
ax.legend()                             # 顯示圖例
plt.tight_layout()                      # tight_layout會自動調整子圖參數,使之填充整個圖像區域。
plt.savefig(r'your save figure.jpg',dpi=300)