python(二):数据可视化之matplotlib

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值