husky66
2020-09-13 15:24
采纳率: 72.2%
浏览 116

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()
    
    点赞 打赏 评论
  • blownewbee 2020-09-13 15:34

    楷体是GB2312字符集的字体,所以字符比较少,换 simsun 看看

    点赞 打赏 评论

相关推荐 更多相似问题