基本统计图形的绘制
——柱状图、条形图、直方图
名称 |
函数 |
重点参数 |
柱状图 |
bar |
left;height;width;color |
条形图 |
barh |
align;bar_width;color;hatch |
直方图 |
hist |
bins;weight;color;edgecolor |
一.柱状图plt.bar (left,height,width = 0.8,bottom = None,hold = None,data = None,** kwargs )
示例
#导包
import matplotlib.pyplot as plt
import numpy as np
# 设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#数据准备
x = np.linspace(1,5,5)
y = [6,3,4,5,1]
y1= [3,2,2,1,1]
y2= [4,5,2,4,2]
#设置图形宽度
bar_width = 0.3
#绘制图形
plt.bar(x,y,bar_width,align='center',color='r')
#堆叠柱状图,叠在y上:bottom=y
plt.bar(x,y1,bar_width,align='center',color='g',bottom=y)
#并列柱状图:x轴加上宽度
plt.bar(x+bar_width,y2,width=bar_width,color='y')
#加图例
plt.legend(['班级A','班级B'])
#本机显示
plt.show()
二.条形图:
plt.barh(x,y,align,bar_width,color,tick_label,hatch)
x——标示在y轴上的柱体标签值
y——柱体宽度
align——柱的对齐方向
bar_width——每条柱子高度
color——柱的颜色
tick_label——y轴上的柱体标签值
hatch——改变填充形状为斜杠/
示例
#导包
import matplotlib.pyplot as plt
import numpy as np
# 设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#数据准备
x = np.linspace(1,8,8)
y = [6,3,4,5,1,7,5,3]
y1 = [1,3,2,5,5,4,2,1]
#绘制图形
plt.barh(x,y,align='center',color='r',hatch='/')
#堆积条形图:left=y
plt.barh(x,y1,left=y,align='center',color='g',hatch='/')
#加图例
plt.legend()
#本机显示
plt.show()
三、直方图
plt.hist(x,bins,range,normed,cumulative,bottom,align,
rwidth,color,edgecolor,label)
x: 数据
bin: 条形个数
range: 上下界
density: 是否将频数转换成频率
cumulative: 是否计算累计频率
bottom: 为直方图的每个条形添加基准线,默认为0
align: 对齐方式
rwidth: 条形的宽度
color: 填充色
edgecolor: 设置直方图边框色
label: 设置直方图标签
示例
#导包
import matplotlib.pyplot as plt
import numpy as np
# 设置中文显示
plt.rcParams['font.sans-serif'] = 'SimHei'
plt.rcParams['axes.unicode_minus'] = False
#数据准备
np.random.seed(0)
#均值与方差
mu,sigma = 100,20
a = np.random.normal(mu,sigma,size=100)
#绘制图形
plt.hist(a,20,normed=0,histtype='bar',\
edgecolor='k',facecolor='g',alpha=0.5)
#标题
plt.title('直方图')
#本机显示
plt.show()