首页 > 解决方案 > 如何修复重叠的 matplotlib y 轴刻度标签或自动缩放绘图?

问题描述

我正在努力正确显示我的 matplotlib barplot。当有许多 y 轴刻度标签 (>100) 时,图形不会自动缩放,并且标签最终会彼此重叠。另一方面,当 y 轴刻度标签很少时,图形看起来会放大并且条形高度会增加。

有没有办法以全尺寸显示“响应式”图,以便在必要时增加图形大小,但无论有多少 y 轴数据点,条形高度都保持不变?

增加figsize有助于消除重叠,但是当 y 刻度标签较少时,图形看起来非常大。

这是标签重叠的图:

带有重叠标签的绘图

这是一个 y 标签较少的例子:

用更少的标签绘图

label=[]
score_list=[]


index = np.arange(len(label))

#Plot resolution.
plt.figure(dpi=300)

#Plot a horizontal barplot.
plt.barh(index, score_list)

plt.ylabel('Kinase', fontsize=6)
plt.xlabel('z-score', fontsize=6)
plt.rc('xtick', labelsize=5)
plt.yticks(index, label, fontsize=4)

# Plot is further styled below.
ax=plt.gca()
for pos in ['right','top', 'left']:
    ax.spines[pos].set_visible(False)
ax.tick_params(left=False)
ax.set_xlim([mini, maxi])
ax.yaxis.set_label_coords(-0.15,0.5)
ax.xaxis.set_label_coords(0.5,-0.15)

#Save plot.
plt.savefig('foo.png', bbox_inches='tight')

标签: pythonnumpymatplotlibplot

解决方案


推荐阅读