import matplotlib.pyplot as plt
import random
# 1、准备数据 x y
x = range(60)
y = [random.uniform(15,18) for i in x]
# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)
# 3、绘制图像
plt.plot(x, y)
# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))
# 4、显示图像
plt.show()
原本要输出的中文变成了方框。
原因是matplotlib是由外国人写的,不支持中文显示
有两种解决方法,一种是一劳永逸的(如果重新安装库的话或者新建虚拟环境的话还是要重新配置的),一种是每次都要执行的。
先讲简单的。
在代码中加入这两行代码
# 解决中文问题
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
import matplotlib.pyplot as plt
import random
# 解决中文问题
plt.rcParams['font.sans-serif']=['SimHei'] # 用来正常显示中文标签
plt.rcParams['axes.unicode_minus']=False # 用来正常显示负号
# 1、准备数据 x y
x = range(60)
y = [random.uniform(15,18) for i in x]
# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)
# 3、绘制图像
plt.plot(x, y)
# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))
# 4、显示图像
plt.show()
下载SimHei字体(即黑体)(或者其他的支持中文显示的字体也行)
大多数电脑都自带,没有的可以点击以下链接进行下载:
阿里云盘
链接:https://www.aliyundrive.com/s/Y1QjiYLZUuC
提取码:F5DQ
百度网盘
链接:https://pan.baidu.com/s/19xbl_FlLBFErTyJdYF_JDw
提取码:q6s2
查看matplotlib配置文件位置
import matplotlib
print(matplotlib.matplotlib_fname())
C:\Users\z2000\miniconda3\lib\sitepackages\matplotlib\mpl-data\matplotlibrc
mpl-data
即可。拷贝simhei.ttf
文件到mpl-data
目录下\fonts\ttf
修改配置文件matplotlibrc
,在尾部追加如下内容
用记事本打开即可
font.family :sans-serif
font.sans-serif :SimHei
axes.unicode_minus :False
删除matplotlib中的缓存文件(Windows不需要)
Mac系统
删除~/.matplotlib中的缓存文件
cd ~/.matplotlib
rm -r *
Linux系统
删除~/.cache/matplotlib中的缓存文件
cd ~/.cache/matplotlib
rm -r *
import matplotlib.pyplot as plt
import random
# 1、准备数据 x y
x = range(60)
y = [random.uniform(15,18) for i in x]
# 2、创建画布
plt.figure(figsize=(20,8), dpi=100)
# 3、绘制图像
plt.plot(x, y)
# 修改x、y刻度
# 准备x的刻度说明
x_label = ["11点{}分".format(i) for i in x]
plt.xticks(x[::5], x_label[::5])
plt.yticks(range(0, 40, 5))
# 4、显示图像
plt.show()
问题解决