Matplotlib 是 Python 的绘图库。它可与 NumPy 一起使用,提供了一种有效的 MatLab 开源替代方案,也可以和图形工具包一起使用。和 Pandas、Numpy 并成为数据分析三兄弟(我自封的:)。
虽然比起很多其他图形库(Seaborn | pyecharts | plotly | bokeh | pandas_profiling)这个库丑丑呆呆的,甚至有点难用,但人家毕竟是开山始祖,方法全,能够支持你各类骚操作的需求。可以说是现在python数据分析中,用的人最多的图形库了。
很多同学学习了 matplotlib 之后苦于找不到循序渐进的练习。今天我们这里就给大家一次性整理了 50 个常用的代码片段!涵盖了从入门到进阶的多种用法。想做可视化的同学不妨收藏起来,慢慢练习。
一、导入
1.导入matplotlib库简写为pltimport 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,