hi,我是为你们的xio习操碎了心的和鲸社区男运营
我们的网站:和鲸社区 Kesci.com
我们的公众号:和鲸社区(ID:heywhale-kesci)
有干货,来!
Matplotlib 是 Python 的绘图库。 它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,也可以和图形工具包一起使用。和Pandas、Numpy并成为数据科学三兄弟(我自己想的)。
点击此处查看线上运行效果50题matplotlib从入门到精通www.kesci.com
文中提及数据集:宝可梦属性数据集
其他x题系列:
一、导入
1.导入matplotlib库简写为plt
import matplotlib.pyplot as plt
二、基本图表
2.用plot方法画出x=(0,10)间sin的图像
x = np.linspace(0, 10, 30)
plt.plot(x, np.sin(x));
3.用点加线的方式画出x=(0,10)间sin的图像
plt.plot(x, np.sin(x), '-o');
4.用scatter方法画出x=(0,10)间sin的点图像
plt.scatter(x, np.sin(x));
5.用饼图的面积及颜色展示一组4维数据
rng = np.random.RandomState(0)
x = rng.randn(100)
y = rng.randn(100)
colors = rng.rand(100)
sizes = 1000 * rng.rand(100)
plt.scatter(x, y, c=colors, s=sizes, alpha=0.3,
cmap='viridis')
plt.colorbar(); # 展示色阶
6.绘制一组误差为±0.8的数据的误差条图
x = np.linspace(0, 10, 50)
dy = 0.8
y = np.sin(x) + dy * np.random.randn(50)
plt.errorbar(x, y, yerr=dy, fmt='.k')
7.绘制一个柱状图
x = [1,2,3,4,5,6,7,8]
y = [3,1,4,5,8,9,7,2]
label=['A','B','C','D','E','F','G','H']
plt.bar(x,y,tick_label = label);
8.绘制一个水平方向柱状图
plt.barh(x,y,tick_label = label);
9.绘制1000个随机值的直方图
data = np.random.randn(1000)
plt.hist(data);
10.设置直方图分30个bins,并设置为频率分布
plt.hist(data, bins=30,histtype='stepfilled', density=True)
plt.show();
11.在一张图中绘制3组不同的直方图,并设置透明度
x1 = np.random.normal(0, 0.8, 1000)
x2 = np.random.normal(-2, 1, 1000)
x3 = np.random.normal(3, 2, 1000)
kwargs = dict(alpha=0.3, bins=40, density = True)
plt.hist(x1, **kwargs);
plt.hist(x2, **kwargs);
plt.hist(x3, **kwargs);
12.绘制一张二维直方图
mean = [0, 0]
cov = [[1, 1], [1, 2]]
x, y = np.random.multivariate_normal(mean, cov, 10000).T
plt.hist2d(x, y, bins=30);
13.绘制一张设置网格大小为30的六角形直方图
plt.hexbin(x, y, gridsize=30);
三、自定义图表元素
14.绘制x=(0,10)间sin的图像,设置线性为虚线
x = np.linspace(0,10,100)
plt.plot(x,np.sin(x),'--');
15设置y轴显示范围为(-1.5,1.5)
x = np.linspace(0,10,100)
plt.plot(x, np.sin(x))
plt.ylim(-1.5, 1.5);
16.设置x,y轴标签variable x,value y
x = np.linspace(0.05, 10, 100)