坐标轴负号显示不正确问题
问题描述
在使用matplotlib中的双log函数作图时,中文显示出现方框状乱码,坐标轴中指数上标为负时总是出现乱码 ¤。
尝试使用了下述代码更改字体设置和负号显示问题,中文显示正常了,但是指数上标依然显示不正确,见下图。
plt.rcParams['font.sans-serif']=['SimHei'] # 显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 显示负号
解决方法
参考这篇博客 https://blog.csdn.net/txh3093/article/details/112507573?spm=1001.2014.3001.5506 成功解决了负号显示问题!
最终代码如下:
plt.rcParams['font.sans-serif']=['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False # 显示负号
def settick():
ax1 = plt.gca() # 获取当前图像的坐标轴
# 更改坐标轴字体,避免出现指数为负的情况
tick_font = fm.FontProperties(family='DejaVu Sans', size=7.0)
for labelx in ax1.get_xticklabels():
labelx.set_fontproperties(tick_font) # 设置x轴刻度字体
for labely in ax1.get_yticklabels():
labely.set_fontproperties(tick_font) # 设置y轴刻度字体
plt.tight_layout()
plt.loglog(data[::2], data[1::2], base = 10)
plt.title('时间开销')
plt.xlabel('数据大小')
plt.ylabel('时间/1e-4s')
settick()
plt.show()
看图看图,负号显示正确啦。