旋转子图Xaxis位置



我在一个图上有两个子图。IM在X轴上绘制时间(00:12:32(,我想旋转两个子图的Xticks,但是当我使用下面的代码时,只有一个子图被旋转。

>
plt.xticks(rotation=90)

这是完整的代码:

#print(start_event_arr)
fig = plt.figure(figsize=(20.0, 20.0))
fig1 = plt.figure(figsize=(20.0, 20.0))
ax = fig.add_subplot(2,1,2)
ax1 = fig1.add_subplot(2,1,1,sharex=ax)
plt.setp(ax.get_xticklabels(), fontsize=6)

dates = [dateutil.parser.parse(s) for s in start_event_arr]
y = event_volume_sums
#plt.xticks(rotation=90)
ax.set_xticks(dates)
ax.plot(dates, cumulative_vol_arr)
ax.xaxis.set_major_formatter(mdates.DateFormatter('%H:%M:%S'))
ax.xaxis.set_major_locator(mdates.MinuteLocator(interval=30))
ax.tick_params(axis='x', which='major', labelsize=10)
plt.xticks(rotation=90)
cm = plt.cm.get_cmap('jet')
ax1.scatter(dates,y,s=event_duration_secs*500, c=event_duration_secs,cmap=cm,linewidth=0,alpha=1.0)
ax1.grid()
#plt.setp(ax1.get_xticklabels(), visible=False)
plt.show()

我怀疑问题是我如何定义子图,但我不知道如何修复它。说ax.xticks((是不可能的。谢谢。

您需要将旋转设置为两个轴。一种选择是使用

plt.setp(ax.get_xticklabels(), rotation=90)
plt.setp(ax1.get_xticklabels(), rotation=90)

您还应该能够更改每个图中所有子图的旋转

fig.autofmt_xdate(rotation=90)
fig1.autofmt_xdate(rotation=90)

最新更新