matplotlib简介
以下是用于数据可视化的几个常用图表:
scatter plot: 散点图
box plot: 箱型图
histogram:柱状图
Multivariate Plots:多变量图
violinplots:小提琴图
pairplot:多变量图
kdeplot:
heatmap:
andrews_curves:
radviz:
joinplot:
matplotlib库由各种可视化的类组成
matplotlib.pyplot是绘制各类可视化图形的命令子库,相当于快捷方式
matplotlib基础
引入模块
import matplotlib.pyplot as plt
%matplotlib incline
#使用内联绘图,就不用调用.show()方法了
先简单绘制一个视图:
plt
matplotlib.pyplot常用的绘图函数
import matplotlib.pyplot as plt
plt.plot([1, 2, 3, 4])
plt.ylabel('some numbers')
plt.show()
线图line
t = np.arange(0.0, 2.0, 0.01)
s = 1 + np.sin(2 * np.pi * t)
fig, ax = plt.subplots() #fig 为所创建的画布figure对象,ax为nd数组类型,存储子图Axes对像
ax.plot(t, s) #做图[x,y]
ax.set(xlabel='time (s)', ylabel='voltage (mV)',
title='About as simple as it gets, folks') #设置图的其他参数
ax.grid() #在图中显示网格
fig.savefig("test.png") #保存画布为文件
plt.show()
饼图pie
labels = 'Frogs', 'Hogs', 'Dogs', 'Logs' #饼图中每个块的标签
sizes = [15, 40, 20, 25]
explode = (0, 0.1, 0, 0) #explode参数表示将某一块突出显示
plt.pie(sizes, explode = explode, labels = labels, autopct = '%1.1f%%', shadow = False, startangle = 90)
autopct: 表示块中的数据表示格式
shadow:: 若为False则饼图为平面图,若为True则会显示阴影
startangle: 表示绘制饼图的初始角度位置
结果
如果绘制的饼图不圆,则应添加下列语句
plt.axis('equal')
保证x轴与y轴是相等的
直方图hist
np.random.seed(0) #设置random的随机数种子为0
mu, sigma = 100, 20 # 均值,方差
a = np.random.normal(mu, sigma, size = 100) #按照均值为100,方差为20 的正态分布生成100个随机数
plt.hist(a, 20, normed = 1, histtype = 'stepfilled', facecolor = 'b', alpha = 0.75)
plt.title('Histogram')
结果
散点图scatter
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, verts=None, edgecolors=None, *, data=None, **kwargs)[source]
x,y
: 点坐标。
s
: 标记大小
c
: 颜色,序列或颜色序列,可选
marker
: MarkerStyle,可选,标记样式。
alpha
: 标量,可选,默认值:无 标记透明度
介于0(透明)和1(不透明)之间。
linewidths
: 标量或array_like,可选,默认值:无
标记边缘的线宽。
edgecolors
: 颜色或颜色序列,可选,默认:‘face’
标记的边缘颜色。
fig, ax = plt.subplots(1,2,figsize=(10,10))
x = np.random.rand(50)
y = np.random.rand(50)
colors = np.random.rand(50)
area = (30 * np.random.rand(50))**2 # 0 to 15 point radii
ax[1].scatter(x, y, s=area, c=colors, alpha=0.5)
plt.show()
参考
The Data Scientist’s Toolbox Tutorial - 2
Python数据分析与展示
matplotlib