首页 > 解决方案 > xaxis 中的 Matplotlib 间距

问题描述

我有一个熊猫数据框,

SPL         COUNT

ASDSFGDFG   2889
BDFGDFGSD   1942
CSDFGSDFG   1660
DDSFGDSFG   837
ESDFGDSFF   742
FDFGSDFDF   577
GDFGDSFGF   523
HDFGDSFGF   480

当我尝试绘图时,xais 没有正确显示 SPL 名称,

X轴

我现在写的代码:

fig, ax = plt.subplots(figsize=(8,8))
plt.tight_layout()
ax.plot(doc_spl['spl'], doc_spl['total_count'])

如何添加间距以正确显示 xaxis,我可以使文本垂直吗?并在刻度之间留出空间?

标签: pythonpandasmatplotlib

解决方案


这是您想要的吗?尝试将以下代码行添加到您的代码中:

plt.xticks(rotation=90)
plt.gca().margins(x=0)
plt.gcf().canvas.draw()
tl = plt.gca().get_xticklabels()
maxsize = max([t.get_window_extent().width for t in tl])
m = 0.2 # inch margin
s = maxsize/plt.gcf().dpi*150+2*m
margin = m/plt.gcf().get_size_inches()[0]

plt.gcf().subplots_adjust(left=margin, right=1.-margin)
plt.gcf().set_size_inches(s, plt.gcf().get_size_inches()[1])

推荐阅读