python:matplotlib绘图无法显示中文或负号,显示为框框

一、总结

一句话总结:

可以修改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、问题:无法显示中文,显示为框框。

解决:

  1. 运行代码找到matplotlib配置文件路径
    import matplotlib matplotlib.matplotlib_fname()
  2. 用文本编辑器打开matplotlibrc配置文件,查找到#font.family:#font.sans-serif这两行。
  3. 去掉这两行的注释,并在font.sans-serif:后添加SimHei(简体黑)
  4. 重启console,运行即可。

 

或者直接在代码中动态指定



plt.rcParams["font.sans-serif"]=["SimHei"]
plt.rcParams["font.family"]="sans-serif"


 

 

2、问题:无法显示负号,显示为框框

解决:

  1. 运行代码找到matplotlib配置文件路径
    import matplotlib matplotlib.matplotlib_fname()
  2. 用文本编辑器打开matplotlibrc配置文件,查找到#axes.unicode_minus:True这一行,去掉注释,True改为False。
  3. 重启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)


 

python:matplotlib绘图无法显示中文或负号,显示为框框_python库