我將兩個條形圖繪制到同一個軸上,其中 x 軸包含從 0 向下的值。但是,我的資料中有很大的差距(例如從 0 到 -15),并且想要洗掉空白空間,以便軸從 0 到 -15 之間沒有空格 - 顯示在此影像上:

理想情況下,我想為所有差距做到這一點。我已經嘗試了plt.axis('tight')和fig.tight_layout(),但都沒有奏效。
編輯:一個小例子的示例代碼
keys = [0, -15, -16, -17]
values = [3, 5, 2, 1]
fig, ax = plt.subplots(ncols=1)
fig.tight_layout()
ax.bar(keys, values, 0.8, color='g', align='center')
ax.set_xticks(keys)
plt.setp(ax.xaxis.get_majorticklabels(), rotation=90 )
uj5u.com熱心網友回復:
- 解決該問題的最簡單方法是
values針對x對應于lenof的范圍繪制keys,然后更改xticklabels.
import matplotlib.pyplot as plt
keys = [0, -15, -16, -17]
values = [3, 5, 2, 1]
fig, ax = plt.subplots()
# create the xticks locations
x = range(len(keys))
ax.bar(x, values, 0.8, color='g', align='center')
# set the ticks and labels
ax.set_xticks(x)
_ = ax.set_xticklabels(keys)

排序
keys = [0, -15, -16, -17]
values = [3, 5, 2, 1]
# zip, sort and unpack
keys, values = zip(*sorted(zip(keys, values)))
fig, ax = plt.subplots()
# create the xticks locations
x = range(len(keys))
ax.bar(x, values, 0.8, color='g', align='center')
# set the ticks and labels
ax.set_xticks(x)
_ = ax.set_xticklabels(keys)

uj5u.com熱心網友回復:
您將需要創建一個斷軸。
請參閱檔案:https : //matplotlib.org/3.1.0/gallery/subplots_axes_and_figures/broken_axis.html
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/353577.html
標籤:Python matplotlib 条形图
