matplotlib的直方图解析和汉化

1.图1

2.代码1:有重要注释,为解释内容

import matplotlib.pyplot as plt
import numpy as np
import matplotlib
from matplotlib import font_manager # 第一步,导出通用字体设置
#第二步,引出字体模块和位置,注意字体ttf文件在默认为主,hwxk=华文行楷
my_font = font_manager.FontProperties(fname="hwxk.ttf")
# 随机生成(10000,)服从正态分布的数据
data = np.random.randn(10000)
"""
绘制直方图
data:必选参数,绘图数据
bins:直方图的长条形数目,可选项,默认为10
normed:是否将得到的直方图向量归一化,可选项,默认为0,代表不归一化,显示频数。normed=1,表示归一化,显示频率。
facecolor:长条形的颜色
edgecolor:长条形边框的颜色
alpha:透明度
"""
#plt.hist(data, bins=40, normed=0, facecolor="blue", edgecolor="black", alpha=0.7)
plt.hist(data, bins=40, density=0, facecolor="blue", edgecolor="black", alpha=0.7)
'''
报错分析:
The 'normed' kwarg was deprecated in Matplotlib 2.1 and will be removed in 3.1. Use 'density' instead.
plt.hist(data, bins=40, normed=0, facecolor="blue", edgecolor="black", alpha=0.7)

'''
#第三步,增加u和fontproperties=my_font,可加u可不加u
#注意:在plt.legend(prop=my_font),是prop,不是fontproperties
# 显示横轴标签
plt.xlabel(u"区间",fontproperties=my_font)
# 显示纵轴标签
plt.ylabel(u"频数/频率",fontproperties=my_font)
# 显示图标题
plt.title(u"频数/频率分布直方图",fontproperties=my_font)
plt.show()

3.简洁代码,整理后:

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import font_manager # 第一步,导出通用字体设置

#第二步,引出字体模块和位置,注意字体ttf文件在默认为主,hwxk=华文行楷
my_font = font_manager.FontProperties(fname="hwxk.ttf")
# 随机生成(10000,)服从正态分布的数据
data = np.random.randn(10000)

plt.hist(data, bins=40, density=0, facecolor="blue", edgecolor="black", alpha=0.7)

# 显示横轴标签
plt.xlabel(u"区间",fontproperties=my_font)
# 显示纵轴标签
plt.ylabel(u"频数/频率",fontproperties=my_font)
# 显示图标题
plt.title(u"频数/频率分布直方图",fontproperties=my_font)
plt.show()
原文地址:https://www.cnblogs.com/ysysbky/p/12381681.html