Python之统计作图函数讲解(三)

统计作图函数讲解

Python统计作图主要库是Matplotlib,而Pandas基于Matplotlib并对某些命令进行了简化,因此作图通常是Matplotlib和Pandas相互结合着使用。

表1-1 Python主要统计作图函数
作图函数名 作图函数功能 所属工具箱
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()

运行结果:

图1-1 正弦曲线图

绘制饼形图

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

图1-2 饼形图

二维条形直方图

  • 绘制二维条形直方图,随机生成有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()

图1-3 二维条形直方图

绘制箱型图

  • 绘制样本数据的箱型图,样本由两组正态分布的随机数组成。其中,一组数据均值为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()

图1-4 箱型图

猜你喜欢

转载自blog.csdn.net/weixin_39549161/article/details/86254367