python中绘图时,出现坐标轴中文字体不显示或显示错误的问题
在绘制图形时,出现坐标轴中文字体不显示或显示错误的问题
通常是因为Matplotlib默认使用的字体不支持中文字符。我们需要手动设置字体,使其能够正确显示中文。
以下是解决办法的步骤:
- 安装支持中文的字体:确保系统中已经安装了支持中文的字体,例如SimHei(黑体)。
- 配置Matplotlib字体:在代码中添加配置,使Matplotlib使用支持中文的字体。
可以通过以下代码来解决中文显示问题:
import seaborn as sns import matplotlib.pyplot as plt import pandas as pd # 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体 plt.rcParams['axes.unicode_minus'] = False # 解决坐标轴负号显示问题 # 创建数据框 data = { '无人机1': [85, 75, 90, 95, 80], '无人机2': [78, 68, 85, 90, 70], '无人机3': [92, 85, 88, 92, 85], '无人机4': [88, 90, 95, 85, 75], '无人机5': [80, 70, 80, 88, 82] } tasks = ['任务分配完成度', '路径规划效率', '目标识别准确率', '重组成功率', '联合打击精度'] df = pd.DataFrame(data, index=tasks) # 生成热力图 plt.figure(figsize=(10, 6)) sns.heatmap(df, annot=True, cmap='YlGnBu', cbar=True) plt.title('无人机蜂群作战评估热力图') plt.xlabel('无人机') plt.ylabel('任务/指标') plt.show()
代码:
这个设置将字体设为SimHei(黑体),从而正确显示中文字符。同时,还解决了坐标轴上负号显示的问题。如果系统中没有安装SimHei字体,可以安装其他支持中文的字体并替换字体名称。
# 设置中文字体 plt.rcParams['font.sans-serif'] = ['SimHei'] # 使用黑体 plt.rcParams['axes.unicode_minus'] = False # 解决坐标轴负号显示问题