【Python】matplotlib.pyplot绘图不显示中文解决方案

今天使用matplotlib.pyplot绘制折线图时,出现图表中文字不显示的问题。

在这里插入图片描述

同时会报错:RuntimeWarning: Glyph 20540 missing from current font.
font.set_text(s, 0.0, flags=flags)

解决方案

需添加一行显示中文标签的代码:

plt.rcParams['font.sans-serif'] = ['SimHei']

在这里插入图片描述

字体选择:

字体对应名称
黑体SimHei
微软雅黑Microsoft YaHei
微软正黑体Microsoft JhengHei
新宋体NSimSun
新细明体PMingLiU
细明体MingLiU
标楷体DFKai-SB
仿宋FangSong
楷体KaiTi
仿宋_GB2312FangSong_GB2312
楷体_GB2312KaiTi_GB2312
  • 41
    点赞
  • 89
    收藏
    觉得还不错? 一键收藏
  • 9
    评论
### 回答1: 非常抱歉,我之前的回答中使用了`matplotlib.pyplot.Menu`,这是一个错误的写法。正确的写法应该是使用`matplotlib.widgets.Menu`。下面是修改后的示例代码: ```python import matplotlib.pyplot as plt from matplotlib.widgets import Menu # 定义绘图函数 def plot_func(value): x = [1, 2, 3, 4, 5] y = [v ** value for v in x] # 根据下拉列表的值计算y值 plt.plot(x, y) plt.title(f"Selected value: {value}") # 设置图形标题 # 创建绘图窗口和子图 fig, ax = plt.subplots() # 设置下拉列表的位置和标签 value_options = [2, 3, 4, 5] value_axes = plt.axes([0.1, 0.9, 0.2, 0.05]) value_menu = Menu(value_axes, 'Select a value:', *value_options) # 定义下拉列表的回调函数 def on_value_selected(event): value = event.ydata # 获取选中的值 plot_func(value) # 绘制新的图形 value_menu.on_clicked(on_value_selected) # 绑定回调函数 # 初始化绘图 plot_func(value_options[0]) plt.show() # 显示图形 ``` 在这个示例代码中,我们使用`matplotlib.widgets.Menu`类创建一个下拉列表,并设置其位置和标签。我们还定义了一个`on_value_selected`回调函数,用于在用户选择下拉列表的值时更新图形。最后,我们初始化绘图,并调用`show`函数显示图形。 您可以根据需要修改`plot_func`函数来绘制不同的图形,或者修改下拉列表的位置和标签以适应您的需求。 ### 回答2: 出现这个错误是因为在matplotlib.pyplot模块中并没有名为Menu的属性。这个错误一般是由于代码中尝试调用了matplotlib.pyplot模块中不存在的属性引起的。 可能是因为代码中有一行类似于"matplotlib.pyplot.Menu()"的语句,尝试调用了Menu属性,但是这个属性在matplotlib.pyplot模块中并不存在。 要解决这个问题,可以通过以下几种方式: 1. 检查代码中是否存在拼写错误或者误用了属性名称。确保代码中调用的是matplotlib.pyplot模块中真正存在的属性。 2. 查看matplotlib.pyplot模块的官方文档或者其他资源,了解当前使用的matplotlib版本中是否有名为Menu的属性。如果不存在的话,可以考虑其他方法来实现相同的功能。 3. 更新matplotlib库到最新版本,以确保使用的是最新的特性和属性。可以通过运行"pip install --upgrade matplotlib"来更新matplotlib库。 总之,解决这个错误需要仔细检查代码中的调用语句,并确保调用的是matplotlib.pyplot模块中真正存在的属性。如果属性确实不存在,可以考虑其他解决方案或者更新matplotlib库。 ### 回答3: 错误提示AttributeError: module 'matplotlib.pyplot' has no attribute 'Menu'表示matplotlib.pyplot模块中没有Menu属性。 通常来说,matplotlib.pyplot是用于绘制各种图表Python库。然而,根据错误提示,我们可以得出结论,Menu属性在当前的matplotlib.pyplot模块中是不存在的。 可能的原因有以下几种: 1. 版本不兼容:有可能你的matplotlib版本较老,而Menu属性是在较新的版本中才引入的。你可以尝试更新matplotlib库到最新版本。 2. 拼写错误:可能是你错误地输入了Menu属性的名字。你可以检查拼写是否正确。 3. 误导性的错误提示:有时错误提示并不准确。这种情况下,你可以从其他渠道,如官方文档、在线教程或者其他可信的资源中查找相关信息。 需要注意的是,根据具体情况,解决方法可能有所不同。你可以根据上述建议进行诊断,并尝试解决这个错误。
评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值