完美解决 matplotlib 对数上标负号乱码的问题

编程入门 行业动态 更新时间:2024-10-27 05:27:27

完美解决 matplotlib 对数上标<a href=https://www.elefans.com/category/jswz/34/1739799.html style=负号乱码的问题"/>

完美解决 matplotlib 对数上标负号乱码的问题

大结局

      在使用matplotlib进行绘图时,如不对参数进行修改,会出现中文字体显示乱码的问题。该问题可以通过在绘图之前进行字体设置解决,见我之前博客中的介绍。

      但在更改字体后发现当坐标轴刻度的指数部分的负号显示乱码,通过设置plt.rcParams['axes.unicode_minus'] = False也无济于事。

      查询到大佬的方法,,但这种源代码的修改会影响mathtext的正常显示,如果标签中想同时显示希腊字母和中文(单独显示任何一种都是正常的),中文部分将会乱码。由此可见该方法并不是特别好的方法,无法真正解决问题。

      经过搜索查询,发现可以从局部字体设置入手,解决问题。现给出完美解决的方案,只需在绘图完成后调用后面所给的settick()函数即可让一切回归正常。局部刻度设置的函数在绘图后使用即可,具体如下:

def settick():'''对刻度字体进行设置,让上标的符号显示正常:return: None'''ax1 = plt.gca()  # 获取当前图像的坐标轴# 更改坐标轴字体,避免出现指数为负的情况tick_font = font_manager.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轴刻度字体ax1.xaxis.set_major_locator(ticker.MaxNLocator(integer=True))  # x轴刻度设置为整数plt.tight_layout()

效果如图所示:(Plus:如果想要进行论文绘图,可参考,文中已经对上述问题进行了优化。)

更多推荐

完美解决 matplotlib 对数上标负号乱码的问题

本文发布于:2024-03-08 12:59:41,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1720944.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:负号   对数   乱码   完美   上标

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!