[英]Rotate minor ticks in matplotlib
我正在绘制以下图表:
使用以下代码:
fig, ax = plt.subplots(figsize=(20, 3))
mpf.candlestick_ohlc(ax,quotes, width=0.01)
ax.xaxis_date()
ax.xaxis.set_minor_locator(mpl.dates.HourLocator(interval=4) )
ax.xaxis.set_minor_formatter(mpl.dates.DateFormatter('%H:%M'))
plt.xticks(rotation = 90)
plt.grid(True)
plt.show()
我还想旋转小刻度:我该怎么做?
附属问题有没有办法用一个命令同时旋转主要和次要刻度?
您可以通过一行plt.setp(ax.xaxis.get_minorticklabels(), rotation=90)
的代码进行plt.setp(ax.xaxis.get_minorticklabels(), rotation=90)
。
在自己处理问题时,我发现您也可以使用tick_params
使用单个语句轻松完成此tick_params
:
ax.tick_params(axis="x", which="both", rotation=45)
这将在您的x axis
旋转标签,而which
选项允许您在次要、主要或两者之间进行选择。 如果您有多个绘图,则必须对图中的每个绘图执行此操作。
通过稍微探索,我发现ax.get_xminorticklabels()
是一个带有text
类元素的列表。
>>> print(type(ax.get_xminorticklabels()[0]))
<class 'matplotlib.text.Text'>
而且text
可以旋转!
>>> for text in ax.get_xminorticklabels():
>>> text.set_rotation(90)
您只需要注意它们不要重叠。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.