我使用下面的代碼使用matplotlib構建條形圖。當我的第一列或最後一列數據爲0時,我的第一列被楔入Y軸。在條形圖和Y軸之間添加填充
這是一個例子。請注意,第一列是在x = 0點上。
如果我在這列數據,我得到的Y軸和這裏看到的第一列之間的巨大空白。注意附加欄,現在在X = 0。如果我在最後一欄中有數據,則重複此效果。
我的代碼如下:
import matplotlib.pyplot as plt
import numpy as np
from matplotlib.ticker import MultipleLocator
binVals = [0,5531608,6475325,1311915,223000,609638,291151,449434,1398731,2516755,3035532,2976924,2695079,1822865,1347155,304911,3562,157,5,0,0,0,0,0,0,0,0]
binTot = sum(binVals)
binNorm = []
for v in range(len(binVals)):
binNorm.append(float(binVals[v])/binTot)
fig = plt.figure(figsize=(6,4))
ax1 = fig.add_subplot(1,1,1)
ax1.bar(range(len(binNorm)),binNorm,align='center', label='Values')
plt.legend(loc=1)
plt.title("Demo Histogram")
plt.xlabel("Value")
plt.xticks(range(len(binLabels)),binLabels,rotation='vertical')
plt.grid(b=True, which='major', color='grey', linestyle='--', alpha=0.35)
ax1.xaxis.grid(False)
plt.ylabel("% of Count")
plt.subplots_adjust(bottom=0.15)
plt.tight_layout()
plt.show()
如何設置Y軸和我的第一個/最後一棒之間保持恆定的距離呢?
此外,我意識到它被標記爲「演示直方圖」,那是因爲在糾正問題here時我錯過了它。