北理工嵩天老师的慕课课程 《python数据分析与展示》学习笔记!
1. pyplot基础图表函数概述
函数 | 说明 | 函数 | 说明 |
---|---|---|---|
plt.plot(x, y, fmt, …) | 绘制一个坐标图 | plt.psd(x, NFFT=256, pad_to, Fs) | 绘制功率谱密度图 |
plt.boxplot(data, notch, position) | 绘制一个箱形图 | plt.specgram(x, NFFT=256, pad_to, F) | 绘制谱图 |
plt.bar(left, height, width, bottom) | 绘制一个条形图 | plt.cohere(x, y, NFFT=256, Fs) | 绘制x-y相关性函数 |
plt.barh(width, bottom, left, height) | 绘制一个横向条形图 | plt.scatter(x, y) | 绘制散点图,其中x和y长度相同 |
plt.polar(theta, r) | 绘制极坐标图 | plt.step(x, y, where) | 绘制步阶图 |
plt.pie(data, explode) | 绘制饼图 | plt.hist(x, bins, normed) | 绘制直方图 |
plt.contour(X, Y, Z, N) | 绘制等值图 | plt.stem(x, y, linefmt, markerfmt) | 绘制柴火图 |
plt.vlines() | 绘制垂直图 | plt.plot_date() | 绘制数据日期 |
2. pyplot绘制饼图
import matplotlib.pyplot as plt
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs'
sizes = [15, 30, 45, 10]
explode = (0, 0.1, 0, 0)
plt.pie(sizes, explode=explode, labels=labels, autopct='%1.1f%%', shadow=False, startangle=90)
plt.axis('equal')
plt.show()
data:每个标签对应饼块的尺寸
explode:饼块突出
labels:标签
autopct:显示百分数的形式
shadow:饼图是否显示阴影
startangle:开始角度
3. pyplot绘制直方图
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(0)
mu, signa = 100, 20
a = np.random.normal(100, 20, size=100)
plt.subplot(211)
plt.hist(a, 10, density=1, histtype='stepfilled', facecolor='b', alpha=0.75)
plt.subplot(212)
plt.hist(a, 40, density=1, histtype='stepfilled', facecolor='r', alpha=0.75)
plt.show()
arr:需要画直方图的一维数组
bins:直方的个数,即把最小值到最大值的区域均等划分为bins个区间显示。
density:=0时显示每个元素出现的次数,=1时将每个元素出现的次数归一化为出现的概率
histtype:直方图类型,‘bar’, ‘barstacked’, ‘step’, ‘stepfilled’
facecolor:直方图的颜色
edgecolor:直方图边框颜色
alpha:透明度
4. pyplot绘制极坐标
import matplotlib.pyplot as plt
import numpy as np
N = 20
theta = np.linspace(0.0, 2*np.pi, N, endpoint=False) # 绘制极坐标系中区域的起始位置
radii = 10*np.random.rand(N) # 从中心点向边缘绘制的长度
width = np.pi/4 * np.random.rand(N) # 每个绘图区域在角度范围内辐射的面积
ax = plt.subplot(211, projection='polar') # 采用了面向对象方法
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. pyplot绘制散点图
import matplotlib.pyplot as plt
import numpy as np
fig, ax = plt.subplots() # 参数为空,表明绘制区域为111
ax.plot(10*np.random.randn(100), 10*np.random.randn(100), 'o')
ax.set_title('Simple Scatter')
plt.show()