husky66 2020-09-13 15:24 采纳率: 57.1%
浏览 134
已采纳

python字体显示问题?

from matplotlib import pyplot as plt
from matplotlib import font_manager


x = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
y = [6, 7, 6, 1, 2]
fonts = font_manager.FontProperties(fname="C:\Windows\Fonts\simkai.ttf")
plt.figure(figsize=(15, 7), dpi=80)

plt.barh(range(len(x)), y, color="r", height=0.2)
plt.yticks(range(len(x)), x, fontproperties=fonts)
plt.xticks(range(9))

plt.show()

图片说明
为什么图片纵坐标显示字体不全?

  • 写回答

2条回答 默认 最新

  • jingluan666 2020-09-13 16:47
    关注

    试下下面的方法

    from matplotlib import pyplot as plt
    
    plt.rcParams['font.sans-serif']=['KaiTi'] 
    plt.rcParams['axes.unicode_minus']=False   
    
    x = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
    y = [6, 7, 6, 1, 2]
    
    plt.figure(figsize=(15, 7), dpi=80)
    
    plt.barh(range(len(x)), y, color="r", height=0.2)
    plt.yticks(range(len(x)), x)
    plt.xticks(range(9))
    
    plt.show()
    
    

    或者

    from matplotlib import pyplot as plt
    
    x = ('碳酸饮料', '绿茶', '矿泉水', '果汁', '其他')
    y = [6, 7, 6, 1, 2]
    
    plt.figure(figsize=(15, 7), dpi=80)
    
    plt.barh(range(len(x)), y, color="r", height=0.2)
    yTuple=plt.yticks(range(len(x)), x)
    
    plt.xticks(range(9))
    
    yLabels = yTuple[1]
    [label.set_fontname('KaiTi') for label in yLabels]
    
    plt.show()
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥40 复杂的限制性的商函数处理
  • ¥15 程序不包含适用于入口点的静态Main方法
  • ¥15 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码