Python之统计作图函数讲解(三)
统计作图函数讲解
Python统计作图主要库是Matplotlib,而Pandas基于Matplotlib并对某些命令进行了简化,因此作图通常是Matplotlib和Pandas相互结合着使用。
作图函数名 | 作图函数功能 | 所属工具箱 |
---|---|---|
plot() | 绘制线性二维图,折线图,散点图 | Matplotlib/Pandas |
pie() | 绘制饼形图 | Matplotlib/Pandas |
hist() | 绘制二维条形直方图,可显示数据的分配情况 | Matplotlib/Pandas |
boxplot() | 绘制样本数据的箱型图 | Pandas |
plot(logy=True) | 绘制y轴的对数图形 | Pandas |
plot(yerr=error) | 绘制误差条形图 | Pandas |
在绘制曲线之前,需要加载以下代码:
import matplotlib.pyplot as plt #导入做图库
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
绘制曲线图plot()
- 示例:在区间[0,2Π]绘制一条蓝色正线虚线,并在每个坐标点上标上五角星 ,绘制 如图1-1所示。
import matplotlib.pyplot as plt #导入做图库
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
x = np.linspace(0,2*np.pi,50) #x坐标输入
y = np.sin(x)
plt.plot(x,y,'bp--')
plt.show()
运行结果:
绘制饼形图
import matplotlib.pyplot as plt #导入做图库
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
labels = ['pig','dog','cat','forg'] #每一块标签
sizes = [15,30,45,10] #每一块比例
colors = ['yellowgreen','gold','lightskyblue','lightcoral'] #每一块颜色
explode = (0,0.1,0,0) #突出显示第二块
plt.pie(sizes,explode=explode,labels=labels,colors=colors,autopct='%1.1f%%',shadow=True,startangle=90)
plt.axis('equal')
plt.show()
二维条形直方图
- 绘制二维条形直方图,随机生成有1000个元素服从正态分布的数组,分成十组绘制直方图,绘制结果如图1-3所示。
import matplotlib.pyplot as plt #导入做图库
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
x = np.random.randn(1000) #1000个服从正态分布的随机数
plt.hist(x,10) #分成十组绘制直方图
plt.show()
绘制箱型图
- 绘制样本数据的箱型图,样本由两组正态分布的随机数组成。其中,一组数据均值为0,标准差为1,另一组数据均值为1,标准差为1,绘制结果如图1-4所示。
import matplotlib.pyplot as plt #导入做图库
import pandas as pd
import numpy as np
plt.rcParams['font.sans-serif'] = ['SimHei'] #用来正常显示中文标签
plt.rcParams['axes.unicode_minus'] = False #用来正常显示负号
x = np.random.randn(1000) #1000个服从正态分布的随机数
D = pd.DataFrame([x,x+1]).T
D.plot(kind='box')
plt.show()