Python 如何使用温度符号-°创建刻度;matplotlib中的C
我有一张y轴的图表,代表一年中某些日子的温度。我想把摄氏度转换成y标签上的实际刻度。这是我到目前为止使用的代码和下面的图表Python 如何使用温度符号-°创建刻度;matplotlib中的C,python,matplotlib,Python,Matplotlib,我有一张y轴的图表,代表一年中某些日子的温度。我想把摄氏度转换成y标签上的实际刻度。这是我到目前为止使用的代码和下面的图表 plt.ylabel('°C',fontsize = 30) plt.yticks(np.arange(miny,maxy, step=20)) plt.tick_params(labelsize=20) 以前的答案集中在unicode问题上,但我发现matplotlib可以将°C符号作为字符串的一部分。我的问题是如何将其放入y轴上的刻度 是否有任何方法可以使用tick
plt.ylabel('°C',fontsize = 30)
plt.yticks(np.arange(miny,maxy, step=20))
plt.tick_params(labelsize=20)
以前的答案集中在unicode问题上,但我发现matplotlib可以将°C符号作为字符串的一部分。我的问题是如何将其放入y轴上的刻度
是否有任何方法可以使用tick_params执行此操作
谢谢您的建议。有两种选择:
- (Mis)使用
- 使用
“°C”
我没有使用子批,尝试了plt.yaxis.set\u major\u格式化程序(StrMethodFormatter(u“{x:.0f}°C”))。它不将yaxis识别为属性。我该怎么做呢?谢谢。
yaxis
是轴的属性。您可以通过plt.gca()
从pyplot获取当前轴。但是无论如何都要考虑使用OO风格。
import matplotlib.pyplot as plt
from matplotlib.ticker import EngFormatter, StrMethodFormatter
fig, (ax,ax2) = plt.subplots(ncols=2)
ax.plot([0,1],[-35,30])
ax.yaxis.set_major_formatter(EngFormatter(unit=u"°C"))
ax2.plot([0,1],[-35,30])
ax2.yaxis.set_major_formatter(StrMethodFormatter(u"{x:.0f} °C"))
plt.tight_layout()
plt.show()