【问题标题】:How do you rotate x axis labels in matplotlib subplots?如何在 matplotlib 子图中旋转 x 轴标签?
【发布时间】:2020-11-30 02:18:32
【问题描述】:

我正在尝试旋转每个子图的 x 轴标签。这是我的代码:

fig.set_figheight(10)
fig.set_figwidth(20)
ax.set_xticklabels(dr_2012['State/UT'], rotation = 90)

ax[0, 0].bar(dr_2012['State/UT'], dr_2012['Primary Total'])
ax[0, 0].set_title('Dropout Ratios 2012-2013 (Primary)')

ax[0, 1].bar(dr_2012['State/UT'], dr_2012['Upper Primary Total'])
ax[0, 1].set_title('Dropout Ratios 2012-2013 (Upper Primary)')

ax[1, 0].bar(dr_2012['State/UT'], dr_2012['Secondary Total'])
ax[1, 0].set_title('Dropout Ratios 2012-2013 (Secondary)')

ax[1, 1].bar(dr_2012['State/UT'], dr_2012['HS Total'])
ax[1, 1].set_title('Dropout Ratios 2012-2013 (HS)')

subplot

通常的事情似乎都不适合我。我试过 ax.set_xticklabels 和 ax.tick_params。我也尝试过使用 ax.get_xticklabels 遍历刻度,即使这样也没有用。它总是给我这个错误-

AttributeError: 'numpy.ndarray' object has no attribute 'set_xticklabels'/'get_xticklabels'/'tick_params'

我很茫然。为什么它不起作用?

【问题讨论】:

标签: python pandas matplotlib xticks


【解决方案1】:

AxesSubplot 上使用tick_params,但在您的情况下axAxesSubplot 对象的np 数组。

修复

ax[1][0].tick_params(axis='x', rotation=90)

示例用法

import matplotlib.pyplot as plt
fig,ax =  plt.subplots(2,2)
import numpy as np
x = np.arange(1,5)
ax[0][0].plot(x,x*x)
ax[0][0].set_title('square')
ax[0][0].tick_params(axis='x', rotation=90)

ax[0][1].plot(x,np.sqrt(x))
ax[0][1].set_title('square root')
ax[0][1].tick_params(axis='x', rotation=90)

ax[1][0].plot(x,np.exp(x))
ax[1][0].set_title('exp')
ax[1][0].tick_params(axis='x', rotation=90)

ax[1][1].plot(x,np.log10(x))
ax[1][1].set_title('log')
ax[1][1].tick_params(axis='x', rotation=90)

plt.show()

输出:

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-03-19
    • 2017-07-10
    • 2015-10-06
    • 2020-12-04
    • 1970-01-01
    • 2016-02-23
    • 2020-10-15
    • 2015-11-21
    相关资源
    最近更新 更多