1、绘制一个散点图
1、首先导入相关库
import matplotlib.pyplot as plt
import numpy as np
2、导入数据 #打开文件 fr = open(filename) #读取文件所有内容 arrayOLines = fr.readlines()
3、绘制散点图 plt.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, hold=None, data=None, **kwargs)
常用参数有:
x,y组成了散点的坐标;
s为散点的面积;
c为散点的颜色(默认为蓝色'b');
marker为散点的标记;
alpha为散点的透明度(0与1之间的数,0为完全透明,1为完全不透明);
linewidths为散点边缘的线宽;
如果marker为None,则使用verts的值构建散点标记;
edgecolors为散点边缘颜色。
4、设置x轴和y轴
5、设置散点图的标题
plt.title('标题')
6、为散点设置图例
7、通过axis()改变坐标轴的度量
plt.axis([0, 6, 0, 20])
列表的前两个数表示x轴的范围,0~6
列表的后两个数表示y轴的范围,0~20
8、显示散点图
plt.show()
2、绘制多个子图
方法一:
在matplotlib中,整个图像为一个Figure对象。在Figure对象中可以包含一个或者多个Axes对象。每个Axes(ax)对象都是一个拥有自己坐标系统的绘图区域。
plt.subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,subplot_kw=None, gridspec_kw=None, **fig_kw):
参数 nrows,ncols:
子图的行列数。
sharex, sharey:
设置为 True 或者 ‘all’ 时,所有子图共享 x 轴或者 y 轴,
设置为 False or ‘none’ 时,所有子图的 x,y 轴均为独立,
设置为 ‘row’ 时,每一行的子图会共享 x 或者 y 轴,
设置为 ‘col’ 时,每一列的子图会共享 x 或者 y 轴。 squeeze:
默认为 True,是设置返回的子图对象的数组格式。
当为 False 时,不论返回的子图是只有一个还是只有一行,都会用二维数组格式返回他的对象。
当为 True 时,如果设置的子图是(nrows=ncols=1),即子图只有一个,则返回的子图对象是一个标量的形式,如果子图有(N×1)或者(1×N)个,则返回的子图对象是一个一维数组的格式,如果是(N×M)则是返回二位格式。 subplot_kw:
字典格式,传递给 add_subplot() ,用于创建子图。 gridspec_kw:
字典格式,传递给 GridSpec 的构造函数,用于创建子图所摆放的网格。
class matplotlib.gridspec.GridSpec(nrows, ncols, figure=None, left=None, bottom=None, right=None, top=None, wspace=None, hspace=None, width_ratios=None, height_ratios=None)
如,设置 gridspec_kw={'height_ratios': [3, 1]} 则子图在列上的分布比例是3比1。 **fig_kw :
所有其他关键字参数都传递给 figure()调用。
如,设置 figsize=(21, 12) ,则设置了图像大小。
返回值 fig: matplotlib.figure.Figure 对象
ax:子图对象( matplotlib.axes.Axes)或者是他的数组
例:使用plt.subplots创建新的figure,返回值为已创建subplot对象的Numpy数组:
fig, axes = plt.subplots(2, 3)
fig = plt.figure()
ax = fig.add_subplot(111)
x = np.arange(1, 5, 0.1)
y = x**3
ax.scatter(x, y)
ax.set_xlabel('x label')
ax.set_ylabel('y label')
plt.show()
多个子图时,设置设置x轴和y轴:
ax.set_title('标签')
ax.set_xlabel('x轴')
方法二:
x = np.arange(0, 5, 0.1)
plt.figure(1) # 创建了图1(figure(1))
plt.subplot(211) # 在figure1种生成子图1
plt.plot(x, np.sin(x)) # 在当前子图,也就是子图1种画图
plt.subplot(212) # 在figure1中生成子图2
plt.plot(x, x**2)
plt.figure(2)
plt.subplot(131)
plt.plot(x, x)
plt.subplot(132)
plt.plot(x, 2*x+1)
plt.subplot(133)
plt.plot(x, np.cos(x))
plt.show()