绘图是数据分析中最重要的任务之一,而matplotlib 作为python 绘图的标准库,可以作出几乎所有你想要的图形。
1. 绘制一个简单的图形
首先,在绘制图形之前,我们需要导入两个基本模块,即 matplotlib.pyplot 和numpy,接着我们使用 numpy 作出 x 轴与 y 轴,最后就可以绘图了,代码如下:
import matplotlib.pyplot as plt
import numpy as np
x = np.arange(-np.pi,np.pi,0.01)
y = np.sin(x)
plt.plot(x, y)
plt.show()
2. 图表元素基础操作
基本参数设置如下
-
color = 'r'
或c = 'r'
---颜色 -
linestyle = '--'
---线条类型 -
linewidth = 1.0
---线条粗细 -
label = 'x'
---标签 -
marker = '*'
---数据点显示 * -
plt.xlabel()
---x 轴标题 -
plt.ylabel()
---y 轴标题 -
plt.title()
---图形标题 -
plt.xticks()
---设置x轴刻度位置,以及旋转角度(rotation)和字大小(fontsize='small'/'medium'/'large'
) -
plt.xticklabels
---设置x轴刻度标签,也可理解是为刻度重新赋值,同样可设置标签旋转角度及字体大小(同xticks) -
plt.legend()
---图例 -
plt.grid(Ture)
---添加网格,也可设置网格颜色,网格线条粗细和类型(同上) -
plt.xlim(xmin,xmax)
---x轴变化范围 -
plt.ylim(ymin,ymax)
---y轴变化范围 -
plt.axis([xmin,xmax,ymin,ymax])
---同时设置x,y轴范围,但必须加 [] -
plt.savefig('文件名',dpi=200,bbox_inches = 'tight')
----dpi ☞像素,默认100;bbox_inches ☞要保存图片的范围,传递'tight',将会去除掉图片的周围空白部分
例如:
x1 = np.linspace(-np.pi,np.pi,1000)
x2 = np.arange(-4,5)
y1 = np.sin(x1)
y2 = 0.1 * x2 - 0.2
plt.plot(x1,y1,'r--',label = 'y1',linewidth = 1.5)
plt.plot(x2,y2, 'b-',marker = '*',label = 'y2')
plt.axis([-np.pi, np.pi, -1, 1])
plt.xlabel('x')
plt.ylabel('$sin(x)$')
plt.title('Example')
plt.legend()
3.图片与子图
在对数据绘图过程中,不可避免的我们会经常将一组数据绘制不同维度的图形,并会放在一起进行对比,因此涉及到子图的问题。在python中,建立子图通常有两种方式
- 第一种:
fig = plt.figure()
ax1 = fig.add_subplot(2,2,1)
ax2 = fig.add_subplot(2,2,2)
ax3 = fig.add_subplot(2,2,3)
- 第二种
fig, axes = plt.subplots(2,2)
ax1,ax2,ax3,ax4 = axes.flatten()
#因为生成的 axes 是一个二维数组,因此可以像二维数组那样方便的进行索引
axes[0,0] #第一个子图
axes[1,1] #第四个子图
网友评论