一、总结
一句话总结:
可以修改matplotlib配置文件,也可以直接在代码中指定
# 解决中文乱码
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["font.family"]="sans-serif"
# 解决负号无法显示的问题
plt.rcParams['axes.unicode_minus'] =False
1、matplotlib解决中文乱码?
plt.rcParams["font.sans-serif"]=["SimHei"]:(简体黑)
plt.rcParams["font.family"]="sans-serif"
2、matplotlib解决负号无法显示?
plt.rcParams['axes.unicode_minus'] =False
二、python:matplotlib绘图无法显示中文或负号,显示为框框
1、问题:无法显示中文,显示为框框。
解决:
- 运行代码找到matplotlib配置文件路径
import matplotlib matplotlib.matplotlib_fname()
- 用文本编辑器打开
matplotlibrc
配置文件,查找到#font.family:
和#font.sans-serif
这两行。 - 去掉这两行的注释,并在
font.sans-serif:
后添加SimHei
(简体黑) - 重启console,运行即可。
或者直接在代码中动态指定
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["font.family"]="sans-serif"
2、问题:无法显示负号,显示为框框
解决:
- 运行代码找到matplotlib配置文件路径
import matplotlib matplotlib.matplotlib_fname()
- 用文本编辑器打开
matplotlibrc
配置文件,查找到#axes.unicode_minus:True
这一行,去掉注释,True改为False。 - 重启console,运行即可。
或者直接在代码中动态指定
# 解决负号无法显示的问题
plt.rcParams['axes.unicode_minus'] =False
实例:
import matplotlib.pyplot as plt # 导入matplotlib模块,用于图表辅助分析
%matplotlib inline
# 解决中文乱码
plt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["font.family"]="sans-serif"
# 解决负号无法显示的问题
plt.rcParams['axes.unicode_minus'] =False
samples1 = np.random.normal(size=(1000,))
samples2 = np.random.normal(size=(1000,))
plt.scatter(samples1,samples2)