现代网站开发建设,cms管理,制作一个网站官网,自助建站好吗#### 以下面的例子说明如何解决matplotlib画图中出现中文字体无法显示问题
要画出10-12点气温变化的图像from matplotlib import pyplot as plt
import random
x range(0,120)
y [random.randint(20,35) for i in range(120)]
plt.figure(figsize(20,8),dpi80)
plt.plot(x,y)…#### 以下面的例子说明如何解决matplotlib画图中出现中文字体无法显示问题
要画出10-12点气温变化的图像from matplotlib import pyplot as plt
import random
x range(0,120)
y [random.randint(20,35) for i in range(120)]
plt.figure(figsize(20,8),dpi80)
plt.plot(x,y)
x_ticks [10点{}分.format(i) for i in range(60)]
x_ticks [11点{}分.format(i) for i in range(60)]
plt.xticks(list(x)[::3],x_ticks[::3],rotation45)
plt.xlabel(时间)
plt.ylabel(温度单位℃)
plt.title(十点到十二点气温变化情况)运行出来的图像如下
可以看出来图像中中文并没有显示出来那么如何解决呢下面提供三种方法实质上第一第二种方法是一样的
##### 第一种from matplotlib import pyplot as plt
import random
import matplotlib as mpl
x range(0,120)
y [random.randint(20,35) for i in range(120)]
plt.figure(figsize(20,8),dpi80)
plt.plot(x,y)
mpl.rcParams[font.sans-serif] [Microsoft YaHei] # 微软雅黑
mpl.rcParams[font.serif] [Microsoft YaHei]
mpl.rcParams[axes.unicode_minus] False # 解决保存图像是负号-显示为方块的问题,或者转换负号为字符串
x_ticks [10点{}分.format(i) for i in range(60)]
x_ticks [11点{}分.format(i) for i in range(60)]
plt.xticks(list(x)[::3],x_ticks[::3],rotation45)
plt.xlabel(时间)
plt.ylabel(温度单位℃)
plt.title(十点到十二点气温变化情况)这时运行出来的结果就有中文了
##### 第二种方法from matplotlib import pyplot as plt
import random
import matplotlib
x range(0,120)
y [random.randint(20,35) for i in range(120)]
plt.figure(figsize(20,8),dpi80)
font {family : Microsoft YaHei,
weight : bold,
size : 12}
matplotlib.rc(font, **font)
plt.plot(x,y)
x_ticks [10点{}分.format(i) for i in range(60)]
x_ticks [11点{}分.format(i) for i in range(60)]
plt.xticks(list(x)[::3],x_ticks[::3],rotation45)
plt.xlabel(时间)
plt.ylabel(温度单位℃)
plt.title(十点到十二点气温变化情况)运行结果如下完美解决了中文不显示问题
##### 第三种方法from matplotlib import pyplot as plt
import random
from matplotlib import font_manager
x range(0,120)
y [random.randint(20,35) for i in range(120)]
plt.figure(figsize(20,8),dpi80)
plt.plot(x,y)
my_font font_manager.FontProperties(fnameC:\WINDOWS\FONTS\MSYHL.TTC) # win字体路径可在左下角搜索栏中输入字体查看
_xtick_labels [10点{}分.format(i) for i in range(60)]
_xtick_labels [11点{}分.format(i) for i in range(60)]
plt.xticks(list(x)[::3],_xtick_labels[::3],rotation45,fontpropertiesmy_font)
plt.xlabel(时间,fontpropertiesmy_font)
plt.ylabel(温度单位℃,fontpropertiesmy_font)
plt.title(十点到十二点气温变化情况,fontpropertiesmy_font)运行出图像如下
这种方法除了麻烦之外可以看出虽然纵坐标和标题的中文都显示出来了但是横坐标从第二项开始就还是不显示...
##### 推荐第一二种方法第三种方法不知道是什么原因导致仍有未显示的中文望各位大佬有空闲时能帮忙分析一下原因交流一下~
u1s1知乎啥时候引进markdown编辑器啊这样好乱啊。。。。
不嫌弃的话请移步俺的“嗅探熊”探索更多黑科技