python中绘图时,出现坐标轴中文字体不显示或显示错误的问题
在绘制图形时,出现坐标轴中文字体不显示或显示错误的问题
通常是因为Matplotlib默认使用的字体不支持中文字符。我们需要手动设置字体,使其能够正确显示中文。
以下是解决办法的步骤:
- 安装支持中文的字体:确保系统中已经安装了支持中文的字体,例如SimHei(黑体)。
- 配置Matplotlib字体:在代码中添加配置,使Matplotlib使用支持中文的字体。
可以通过以下代码来解决中文显示问题:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | <span class = "kwd" >import</span><span class = "pln" > seaborn </span><span class = "kwd" > as </span><span class = "pln" > sns </span><span class = "kwd" >import</span><span class = "pln" > matplotlib</span><span class = "pun" >.</span><span class = "pln" >pyplot </span><span class = "kwd" > as </span><span class = "pln" > plt </span><span class = "kwd" >import</span><span class = "pln" > pandas </span><span class = "kwd" > as </span><span class = "pln" > pd </span><span class = "com" ># 设置中文字体</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >rcParams</span><span class = "pun" >[</span><span class = "str" > 'font.sans-serif' </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "str" > 'SimHei' </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "com" ># 使用黑体</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >rcParams</span><span class = "pun" >[</span><span class = "str" > 'axes.unicode_minus' </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" >False</span><span class = "pln" > </span><span class = "com" ># 解决坐标轴负号显示问题</span><span class = "pln" > </span><span class = "com" ># 创建数据框</span><span class = "pln" > data </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >{</span><span class = "pln" > </span><span class = "str" > '无人机1' </span><span class = "pun" >:</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "lit" >85</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >75</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >90</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >95</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >80</span><span class = "pun" >],</span><span class = "pln" > </span><span class = "str" > '无人机2' </span><span class = "pun" >:</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "lit" >78</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >68</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >85</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >90</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >70</span><span class = "pun" >],</span><span class = "pln" > </span><span class = "str" > '无人机3' </span><span class = "pun" >:</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "lit" >92</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >85</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >88</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >92</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >85</span><span class = "pun" >],</span><span class = "pln" > </span><span class = "str" > '无人机4' </span><span class = "pun" >:</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "lit" >88</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >90</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >95</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >85</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >75</span><span class = "pun" >],</span><span class = "pln" > </span><span class = "str" > '无人机5' </span><span class = "pun" >:</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "lit" >80</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >70</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >80</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >88</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >82</span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >}</span><span class = "pln" > tasks </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "str" > '任务分配完成度' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > '路径规划效率' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > '目标识别准确率' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > '重组成功率' </span><span class = "pun" >,</span><span class = "pln" > </span><span class = "str" > '联合打击精度' </span><span class = "pun" >]</span><span class = "pln" > df </span><span class = "pun" >=</span><span class = "pln" > pd</span><span class = "pun" >.</span><span class = "typ" >DataFrame</span><span class = "pun" >(</span><span class = "pln" >data</span><span class = "pun" >,</span><span class = "pln" > index</span><span class = "pun" >=</span><span class = "pln" >tasks</span><span class = "pun" >)</span><span class = "pln" > </span><span class = "com" ># 生成热力图</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >figure</span><span class = "pun" >(</span><span class = "pln" >figsize</span><span class = "pun" >=(</span><span class = "lit" >10</span><span class = "pun" >,</span><span class = "pln" > </span><span class = "lit" >6</span><span class = "pun" >))</span><span class = "pln" > sns</span><span class = "pun" >.</span><span class = "pln" >heatmap</span><span class = "pun" >(</span><span class = "pln" >df</span><span class = "pun" >,</span><span class = "pln" > annot</span><span class = "pun" >=</span><span class = "kwd" >True</span><span class = "pun" >,</span><span class = "pln" > cmap</span><span class = "pun" >=</span><span class = "str" > 'YlGnBu' </span><span class = "pun" >,</span><span class = "pln" > cbar</span><span class = "pun" >=</span><span class = "kwd" >True</span><span class = "pun" >)</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >title</span><span class = "pun" >(</span><span class = "str" > '无人机蜂群作战评估热力图' </span><span class = "pun" >)</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >xlabel</span><span class = "pun" >(</span><span class = "str" > '无人机' </span><span class = "pun" >)</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >ylabel</span><span class = "pun" >(</span><span class = "str" > '任务/指标' </span><span class = "pun" >)</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >show</span><span class = "pun" >()</span> |
代码:
这个设置将字体设为SimHei(黑体),从而正确显示中文字符。同时,还解决了坐标轴上负号显示的问题。如果系统中没有安装SimHei字体,可以安装其他支持中文的字体并替换字体名称。
1 2 3 | <span class = "com" ># 设置中文字体</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >rcParams</span><span class = "pun" >[</span><span class = "str" > 'font.sans-serif' </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "pun" >[</span><span class = "str" > 'SimHei' </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "com" ># 使用黑体</span><span class = "pln" > plt</span><span class = "pun" >.</span><span class = "pln" >rcParams</span><span class = "pun" >[</span><span class = "str" > 'axes.unicode_minus' </span><span class = "pun" >]</span><span class = "pln" > </span><span class = "pun" >=</span><span class = "pln" > </span><span class = "kwd" >False</span><span class = "pln" > </span><span class = "com" ># 解决坐标轴负号显示问题</span> |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
· 上周热点回顾(3.3-3.9)
· winform 绘制太阳,地球,月球 运作规律