繁体   English   中英

在 matplotlib 中旋转小刻度

[英]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)

xminorticklabels_rotate_example

您只需要注意它们不要重叠。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM