我正在使用 pyplot 制作條形圖。我有一行代碼,我在其中為繪圖設定了一個網格,如下所示:
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=1)
我需要將網格發送到背景而不是背景。
此外,y 軸值從 0% 開始。我想從 20% 開始值。
這是完整的代碼:
plt.bar(r1, dao, color='blue', width=barWidth, edgecolor='white', label='DAO')
plt.bar(r2, pie_gdp, color='orange', width=barWidth, edgecolor='white', label='PIE- GDP')
plt.bar(r3, pie_sdp, color='gray', width=barWidth, edgecolor='white', label='PIE-SDP')
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=1)
plt.xticks([r barWidth for r in range(len(dao))], ['DNN-Sigmoid', 'CNN-Sigmoid', 'DNN-ReLU', 'CNN-ReLU'])
plt.gca().set_yticklabels(['{:.0f}%'.format(x*1) for x in plt.gca().get_yticks()])
plt.legend(loc='lower center', bbox_to_anchor=(0.5, -0.20), ncol=3)
plt.show()
dao,pie_gdp和pie_sdp被np.arrays包含我繪制資料
uj5u.com熱心網友回復:
用于ax.set_axisbelow(True)在圖上的元素后面放置網格線。plt.ylim()(或ax.set_ylim()) 可以更改資料限制。PercentFormatter 將刻度標簽格式化為百分比。
import matplotlib.pyplot as plt
from matplotlib.ticker import PercentFormatter
import numpy as np
barWidth = 0.8 / 3
r1 = np.arange(4)
r2 = r1 barWidth
r3 = r2 barWidth
dao = np.random.uniform(20, 100, 4)
pie_gdp = np.random.uniform(20, 100, 4)
pie_sdp = np.random.uniform(20, 100, 4)
plt.bar(r1, dao, color='blue', width=barWidth, edgecolor='white', label='DAO')
plt.bar(r2, pie_gdp, color='orange', width=barWidth, edgecolor='white', label='PIE- GDP')
plt.bar(r3, pie_sdp, color='gray', width=barWidth, edgecolor='white', label='PIE-SDP')
plt.grid(color='#95a5a6', linestyle='--', linewidth=2, axis='y', alpha=1)
ax = plt.gca()
ax.set_axisbelow(True) # grid lines behind other elements
plt.xticks(r1 barwidth, ['DNN-Sigmoid', 'CNN-Sigmoid', 'DNN-ReLU', 'CNN-ReLU'])
plt.ylim(20, None) # start from 20
ax.yaxis.set_major_formatter(PercentFormatter(100))
for spine in ['top', 'right']:
ax.spines[spine].set_visible(False) # hide part of the box
plt.legend(loc='upper center', bbox_to_anchor=(0.5, -0.1), ncol=3)
plt.tight_layout() # fit subplot and texts nicely into the figure
plt.show()

轉載請註明出處,本文鏈接:https://www.uj5u.com/ruanti/374564.html
標籤:Python 麻木的 matplotlib 条形图 y轴
上一篇:如何根據列中的顏色為條形圖著色
下一篇:Matplotlib:多條柱狀圖
