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()