Python xtick标签中的Matplotlib换行符
我见过很多解决方案(包括matplotlib示例代码),要使x-tick标签是多行的,只需引入一个换行符即可。我做到了(下面是添加这一新行的代码摘录):Python xtick标签中的Matplotlib换行符,python,matplotlib,Python,Matplotlib,我见过很多解决方案(包括matplotlib示例代码),要使x-tick标签是多行的,只需引入一个换行符即可。我做到了(下面是添加这一新行的代码摘录): 子批.xaxis.set\u major\u格式化程序(mdates.DateFormatter(“%m-%d\n%H:%m”,tz=startTime.tzinfo)) 然而,我注意到这引入了一个奇怪的怪癖,当我将鼠标移到绘图上时,它会导致所有绘图上下“跳跃”(当我再次将鼠标移到绘图上时,会稍微上下移动)。注意:如果只有一个绘图,则底部的
子批.xaxis.set\u major\u格式化程序(mdates.DateFormatter(“%m-%d\n%H:%m”,tz=startTime.tzinfo))
然而,我注意到这引入了一个奇怪的怪癖,当我将鼠标移到绘图上时,它会导致所有绘图上下“跳跃”(当我再次将鼠标移到绘图上时,会稍微上下移动)。注意:如果只有一个绘图,则底部的matplotlib工具栏(带有保存按钮等)仅上下移动。当您尝试移动鼠标并与绘图交互时,这会使您看起来不舒服。我注意到当我去掉新行字符时,这种怪癖消失了。其他人遇到了这个问题并解决了它(比如在保持多行标签不出现这种奇怪的“跳跃”怪癖时)
我正在使用Python3.6和matplotlib 1.5.3。使用TKAgg后端。默认情况下,导航工具栏中显示的值与轴上显示的值使用相同的格式化程序。我假设您只想将所讨论的格式
%m-%d\n%H:%m”
用于ticklabel格式,并且很乐意在移动鼠标时对显示的值使用单行格式
这可以通过为这两种情况使用不同的格式化程序来实现
# Format tick labels
ax.xaxis.set_major_formatter(mdates.DateFormatter("%m-%d\n%H:%M"))
# Format toolbar coordinates
ax.fmt_xdata = mdates.DateFormatter('%m-%d %H:%M')
示例图片:
复制的完整代码:
导入matplotlib
matplotlib.use(“TkAgg”)
作为pd进口熊猫
将matplotlib.pyplot作为plt导入
将matplotlib.dates导入为mdates
将numpy作为np导入
日期=pd.日期范围(“2016-06-01 09:00”,“2016-06-01 16:00”,freq=“H”)
y=np.cumsum(np.random.normal(size=len(dates)))
df=pd.DataFrame({“日期”:日期,“y”:y})
图,ax=plt.子批次()
ax.绘图日期(df[“日期”],df.y'-')
ax.xaxis.set\u major\u定位器(mdates.HourLocator())
ax.xaxis.set\u major\u格式化程序(mdates.DateFormatter(“%m-%d\n%H:%m”))
ax.fmt_扩展数据=mdates.DateFormatter(“%m-%d%H:%m”)
plt.show()。这是一个相反的问题: