python字体显示问题?

from matplotlib import pyplot as plt
from matplotlib import font_manager
x = ('碳酸饮料', | 1 k h ? C'绿茶', '矿泉水', '果汁', '其他')
y = [6, 7, 6, 1, 2]
fonts = font_manager.FontProperties(fn6  & L zame="C:\Windows\FoP x z M ` [nts\simkai.ttf")
plt.fiy 2 Xgure(figsize=(15, 7), dpi=80)
plt.barh(range(len(x)), y, colo; } } S E 4 T Or="r", height=0.2)
plt.yticks(range(len(x)), x, fontproperties; | p $ : ! -=fonts)
plt.xticks(r0 f F N 9ange(9))
plt.show()

python字体显示问题?
为什么图片纵坐标显示字体不全?

回答

试下下面的方法

from matplotlib import pyplot as plt

plt# { 7 w w ) z.rcParams['font.sanE F s ;s-serif']=['KaiTi'] 
plt.rcParams['U r Naxes.unicode_minus']=False   

x = ('碳酸饮料', '绿茶', '矿泉水', '果y 8 s 4 s L ( T汁', '其他} l e')
y = [6A z } ~, 7, 6, 1, 2]

plt.p ( Sfigure(figsize=(15, 7), dpi=80)

plt.bX e u w ~arh(range(len(x)), y, color="r", height=0.2)
plt.yticks(range(len(x)), x)
plt.xticks(range(9))

plt.show()

或者

from may ~ 8 q w Gtplotlib import pyplot a! D _ K #  xs plt

x = ('碳酸饮料', '绿茶', '矿泉水', I } ^ n E C r'果汁', '其他')
y = [6, 7, 6, 1, 2]

plt.figure(figsize=(15, 7), dpi=80)

plt.barh(raY x / Q q = unge(len(x)), y, color="r", height=0.2)
yTuple=plt.yticks(range(len(x)), x)

plt.xy P d E . X U 1 !ticks(ran7 c 0 l u zge(9))

yLabels = yTuple) { } G m R[1]
[label.set_fontname('KaiTi' , % s p) for label in yLabels/ I  p G : h v]

plt.show()