我用下面的代码构造一个简单的图:
import matplotlib.pyplot as plt
idl_t, idl_q = [[0, 20], [8, 24]], [[100, 100], [100, 100]]
dsc_t, dsc_q = [[8, 14], [12, 18]], [[100, 100], [5, 5]]
cha_t, cha_q = [[12, 18], [14, 20]], [[5, 5], [100, 100]]
plt.figure(figsize=(7, 3))
plt.plot(idl_t, idl_q, color="blue", lw=2)
plt.plot(dsc_t, dsc_q, color="red", lw=2)
plt.plot(cha_t, cha_q, color="green", lw=2)
plt.xlabel("Time (hour)")
plt.show()
但是,代码不知何故剪切了图中的x标签,如下所示:
我很确定这是因为改变了figsize
,并且似乎它按比例分配了标签空间。请参见下面的正常figsize
图:
我怎样才能为xlabel
保留足够的空间来使用不同的figsize
?它真的应该是这样的吗?因为它对我来说似乎是一个bug?
2条答案
按热度按时间7gcisfzg1#
使用
plt.tight_layout
更新
正如@TrentonMcKinney建议的那样,您也可以将
tight_layout=True
作为plt.figure
的参数传递iyfamqjs2#
使用
constrained_layout
。它比tight_layout
更灵活(通常):