mateplotlib绘制散点图_matplotlib绘制散点图

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()

你可能感兴趣的:(mateplotlib绘制散点图_matplotlib绘制散点图)