如何在所有条形图子图上显示x轴标签?

2024-10-16 20:49:34 发布

您现在位置:Python中文网/ 问答频道 /正文

问题:

我正在尝试显示条形图子图上的所有标签。我试过这个answer和这个answer里的所有东西,但都不走运。你知道吗

数据:

data = StringIO("""

Index-- --Rk    Passing-Player  Passing-Cmp Passing-Att Passing-Pct Passing-Yds Passing-Y/A Passing-AY/A    Passing-TD  Passing-Int Passing-Rate
0   0   1   Patrick Mahomes 364 573 63.5    4653    8.1 8.2 36  15  147.2
1   1   2   Davis Webb  22  41  53.7    300 7.3 8.3 2   0   131.2
2   2   3   Nic Shimonek    1   2   50.0    18  9.0 9.0 0   0   125.6
3   3   4   Jakeem Grant    1   1   100.0   72  72.0    92.0    1   0   1034.8
4   4   5   Jonathan Giles  1   1   100.0   3   3.0 3.0 0   0   125.2
5   5   6   Ian Sadler  0   1   0.0 0   0.0 0.0 0   0   0.0

""")

df = pd.read_table(data, delim_whitespace=True)

dfs = [df] * 9

绘图代码:

fig, axs = plt.subplots(3,3, figsize=(10,10), sharey=True, sharex=False)
for ax,df in zip(axs.ravel(), dfs):
    ax.bar(df['Passing-Player'], df['Passing-Yds'])
    for tick in ax.get_xticklabels():
        tick.set_visible(True)

fig.autofmt_xdate(rotation=90)
fig.tight_layout(pad=2.0, w_pad=2.0, h_pad=10.0)
fig.savefig("tester.png")

结果:

enter image description here

我怎样才能显示所有的x轴标签,因为在我的真实数据中,每一个情节都是不同的球员名字不同。你知道吗


Tags: 数据answertruedffordatafig标签
1条回答
网友
1楼 · 发布于 2024-10-16 20:49:34

您需要删除fig.autofmt_xdate(rotation=90),因为您不使用日期,您自己使用ax.set_xticklabels(labels_go_here, rotation=90)来设置刻度标签

fig, axs = plt.subplots(3,3, figsize=(10,10), sharey=True, sharex=False)
for ax, df in zip(axs.ravel(), dfs):
    ax.bar(df['Passing-Player'], df['Passing-Yds'])
    ax.set_xticklabels(df['Passing-Player'], rotation=90)

fig.tight_layout(pad=2.0, w_pad=2.0, h_pad=10.0)

plt.show()

enter image description here

相关问题 更多 >