1.pyplot基础图表函数概述:
函数 | 说明 |
---|---|
plt.plot(x,y,fmt, …) | 绘制一个坐标图 |
plt.boxplot(data,notch,position) | 绘制一个箱体图 |
plt.bar(left,height,width,bottom) | 绘制一个条形图 |
plt.barh(width,bottom,left,height) | 绘制一个横向条形图 |
plt.polar(theta,r) | 绘制极坐标图 |
plt.pie(data,explode) | 绘制饼图 |
plt.pas(x,NFFT=256,pad_to,Fs) | 绘制功率谱密度图 |
plt.specgram(x,NFFT=256,pad_to,F) | 绘制谱图 |
plt.cohere(x,y,NFFT=256,Fs) | 绘制X-Y的相关性函数 |
plt.scatter(x,y) | 绘制散点图,其中,x和y长度相同 |
plt.step(x,y,where) | 绘制步阶图 |
plt.hist(x,bins,normed) | 绘制直方图 |
plt.contour(X,Y,Z,N) | 绘制等值图 |
plt.vlines() | 绘制垂直图 |
plt.stem(x,y,linefmt,markerfmt) | 绘制柴火图 |
plt.plot_date() | 绘制数据日期 |
2.饼图:
import matplotlib.pyplot as plt
labels = 'Frogs','Hogs','Dogs','Logs' # 定义饼图的标签
sizes = [15,30,45,10] # 每标签对应的比例
explode = (0,0.1,0,0) #将比例为30的部分突出出来,突出的比例为0.1
# 使用pie()函数绘制饼图,autopct表示数据显示形式,shadow表示是否显示阴影效果,startangle表示饼图起始的角度
plt.pie(sizes,explode=explode,labels=labels,autopct='%1.1f%%',shadow=True,startangle=90)
plt.axis('equal') # 在绘制图时,x和y方向的尺寸应该是相等的,使得饼图是一个正圆形的饼图
plt.show()
绘制得到如下效果的饼图:
3.直方图:
import numpy as np
import matplotlib.pyplot as plt
np.random.seed(0) # 设置随机种子
mu, sigma = 100, 20 # 均值和标准差
a = np.random.normal(mu, sigma, size=100) # 生成一个均值和方差给定的成正态分布的数组a
# 绘制直方图,参数bin(此处设置为40)表示直方图的个数,参数normed为0是表示每一个直方中出现的a的元素的个数归一化为出现的概率,因此此处y轴值为小数值,如果数normed为1表示每一个直方中出现的a的元素的个数
plt.hist(a, 40, normed=1, histtype='stepfilled', facecolor='b', alpha=0.75)
# 添加文本标签
plt.title('Histogram')
plt.show()
绘制得到如下效果的直方图:
4.极坐标图:
import numpy as np
import matplotlib.pyplot as plt
# 极坐标图中数据的个数
N = 20
# 使用numpy中的linspace()从0到360度(2pi)按照个数等分出不同的角度
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
# 使用random.rand()函数生成每个角度对应的值
radii = 10 * np.random.rand(N)
# 设置每个角度的宽度值
width = np.pi / 4 * np.random.rand(N)
# 使用面向对象的方法绘制极坐标图
ax = plt.subplot(111, projection='polar') # 将设置的子绘图区域形成了一个对象ax
# bar()的三个参数为left(绘制的起始点)、height(从中心点向边缘绘制的长度)、width(每个绘图区域的面积)
bars = ax.bar(theta, radii, width = width, bottom = 0.0)
# 对每部分的颜色进行设定
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.viridis(r / 10.))
bar.set_alpha(0.5)
plt.show()
绘制得到如下效果的极坐标图:
5.散点图:
import numpy as np
import matplotlib.pyplot as plt
# 使用面向对象方法绘制散点图,matplotlib库推荐使用的方法
fig, ax = plt.subplots()
ax.plot(10 * np.random.randn(100), 10 * np.random.randn(100), 'o')
ax.set_title('Simple Scatter')
plt.show()
绘制得到如下效果的散点图: