python pyplot 输出支持中文

Python3.8

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

环境MACOS
我在使用pyplot输出支持中文的问题,在使用matplotlib绘图时遇到了中文显示为方块或者乱码的问题。
先尝试再windows下是否可以解决,

在 Python 的 Matplotlib 中使用 pyplot 输出中文时,默认字体可能不支持中文显示(会出现方块或乱码)。以下是让 pyplot支持中文的完整方法:


方法 1:动态指定字体

import matplotlib.pyplot as plt
from matplotlib.font_manager import FontProperties

# 指定中文字体路径(替换为你系统的字体路径)
#font_path = 'C:/Windows/Fonts/simhei.ttf'  # Windows 黑体路径
font_path = '/System/Library/Fonts/STHeiti Medium.ttc'  # macOS 黑体-简路径
# font_path = '/usr/share/fonts/truetype/wqy/wqy-microhei.ttc'  # Linux 文泉驿微米黑

# 创建字体属性对象
chinese_font = FontProperties(fname=font_path)

# 示例绘图
plt.plot([1, 2, 3], [4, 5, 6])
plt.title("中文标题示例", fontproperties=chinese_font)
plt.xlabel("X轴标签", fontproperties=chinese_font)
plt.ylabel("Y轴标签", fontproperties=chinese_font)
plt.show()

方法 2:全局设置中文字体

import matplotlib.pyplot as plt

# 设置全局中文字体(以 "SimHei" 为例,适用于 Windows)
plt.rcParams['font.sans-serif'] = ['SimHei']  # 设置默认字体为黑体
plt.rcParams['axes.unicode_minus'] = False    # 解决负号 "-" 显示为方块的问题

# 示例绘图
plt.plot([1, 2, 3], [4, 5, 6])
plt.title("中文标题示例")
plt.xlabel("X轴标签")
plt.ylabel("Y轴标签")
plt.show()


常见中文字体名称对照表

操作系统字体名称字体文件路径示例
WindowsSimHei(黑体)C:/Windows/Fonts/simhei.ttf
WindowsMicrosoft YaHei(微软雅黑)C:/Windows/Fonts/msyh.ttc
macOSSTHeiti(华文黑体)/System/Library/Fonts/STHeiti Medium.ttc`
LinuxWenQuanYi Micro Hei/usr/share/fonts/truetype/wqy/wqy-microhei.ttc

验证是否生效

import matplotlib.pyplot as plt
import matplotlib.font_manager as fm

# 查看已加载的字体列表
font_list = fm.findSystemFonts()
chinese_fonts = [f for f in font_list if any(keyword in f.lower() for keyword in ['hei', 'yahei', 'song', 'kai'])]
print("支持的中文字体路径:", chinese_fonts)

常见问题解决

  1. 字体路径错误

    • 确保 font_path指向真实的字体文件(如 Windows 下 simhei.ttf 路径为 C:/Windows/Fonts/simhei.ttf)。
  2. 字体缓存未更新

    • 清除 Matplotlib 缓存(运行以下代码后重启 Python):
      import matplotlib
      matplotlib._get_cachedir()  # 查看缓存路径,手动删除该目录
      
  3. 系统缺少中文字体

    • Linux 安装中文字体包:
      sudo apt-get install fonts-wqy-microhei  # 文泉驿微米黑
      

完整示例(带中文输出)

import matplotlib.pyplot as plt
import numpy as np

# 设置全局中文字体
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False

# 生成数据
x = np.linspace(0, 2*np.pi, 100)
y = np.sin(x)

# 绘制图形
plt.figure(figsize=(8, 4))
plt.plot(x, y, label='正弦曲线')
plt.title("中文标题示例")
plt.xlabel("X轴(角度)")
plt.ylabel("Y轴(振幅)")
plt.legend()
plt.grid(True)
plt.show()

通过上述方法,可以确保 pyplot 正确显示中文标题、标签和图例。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一周一志程序员

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值