我正在使用包含分类变量的 pandas DataFrame,其中一些变量具有长名称的值。然而,我的一些分类特征的值名称很长,导致标签重叠并使图表难以阅读。我正在尝试使用以下代码为每个分类变量创建水平条形图以可视化它们的频率:
categorical = [col for col in df.columns if col not in numerical]
fig = plt.figure(figsize=(15, 9))
i = 1
for name in categorical:
ax = fig.add_subplot(3, 6, i)
i += 1
df[name].value_counts().plot.barh(ax=ax)
ax.set_xlabel("Frequency")
ax.set_ylabel(name)
plt.tight_layout()
plt.show()
我可以使用哪些策略来处理长类别名称并提高水平条形图的可读性?我可以对代码进行任何调整以更有效地适应长类别名称吗?
最初,我尝试使用紧凑的布局来安排情节,但并没有达到预期的效果。随后,我不知道该如何进行,于是向聊天寻求帮助,但遗憾的是,他们无法提供令人满意的解决方案。经过 20 分钟的思考和研究,我仍然没有想法。
以下是增加图形大小和调整子图参数的方法:
fig - plt.figure(figsize=(20,15)) # Figure size
i = 1
for name in categorical:
ax = fig.add_subplot(3, 6, i)
i += 1
df[name].value_counts().plot.barh(ax=ax)
ax.set_xlabel("Frequency")
ax.set_ylabel(name)
plt.yticks(fontsize=8) # Font size
plt.subplots_adjust(wspace=0.4, hspace=0.6) # Subplot parameters
plt.tight_layout()
plt.show()