matplotlib.pyplot.scatter plt.subplots各参数详解

matplotlib.pyplot.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, *, data=None, **kwargs)

各参数的含义

x,y:表示的是大小为(n,)的数组,也就是我们即将绘制散点图的数据点

s:是一个实数或者是一个数组大小为(n,),这个是一个可选的参数,表示散点图的大小。

c:表示的是颜色,也是一个可选项。默认是蓝色’b’,表示的是标记的颜色,或者可以是一个表示颜色的字符,或者是一个长度为n的表示颜色的序列等等。
marker:表示的是标记的样式,默认的是’o’。

cmap:Colormap实体或者是一个colormap的名字,biao
norm:Normalize实体来将数据亮度转化到0-1之间,也是只有c是一个浮点数的数组的时候才使用。如果没有申明,就是默认为colors.Normalize。

vmin,vmax:实数,当norm存在的时候忽略。用来进行亮度数据的归一化。

alpha:实数,0-1之间。

linewidths:也就是标记点的长度。

import matplotlib.pyplot as plt
import numpy as np

np.random.seed(222)
x=np.random.rand(5)
y=np.random.rand(5)
s = np.array(range(10,110,20))
c = np.array(range(0,5))
plt.scatter(x, y,s=s, c=c)
plt.colorbar()
plt.show()

matplotlib.pyplot.scatter plt.subplots各参数详解_第1张图片

def subplots(nrows=1, ncols=1, sharex=False, sharey=False, squeeze=True,
subplot_kw=None, gridspec_kw=None, **fig_kw):
建立一个fig对象,建立多个axis子图对象

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.subplot(3, 10,3)#会将原始的图像切割成3*10个子图像,是3行10列,并将现在的操作位置转到第3个子图上,这样便实现了绘制子图的方法。

import matplotlib.pyplot as plt
import numpy as np
show_num = 3
f, a = plt.subplots(3, show_num, figsize=(10,2))
for i in range(show_num):
    a[0][i].imshow(np.reshape([1,2,3,4], (2, 2)))
    a[0][i].set_ylim( 2, -2)
    a[0][i].set_title("title %d"%i)
    a[1][i].imshow(np.reshape([1,2,3,4], (2, 2)))
    a[1][i].axis('off')
    a[2][i].imshow(np.reshape([1,2,3,4], (1, 4)))
#plt.show()
plt.subplot(3, show_num,3)#会将原始的图像切割成3*10个子图像,是3行10列,并将现在的操作位置转到第3个子图上,这样便实现了绘制子图的方法。
plt.plot([1,2,3], [3,4,5])
plt.show()

matplotlib.pyplot.scatter plt.subplots各参数详解_第2张图片

minist数据集图片

import matplotlib.pyplot as plt
import numpy as np
from tensorflow.examples.tutorials.mnist import input_data
mnist = input_data.read_data_sets("D:/code/python/机器学习/deep learning/MNIST_data", one_hot=False)

show_num = 10

f, a = plt.subplots(1, show_num, figsize=(10, 2))
for i in range(show_num):
    a[i].imshow(np.reshape(mnist.test.images[i], (28, 28)))
plt.show()

在这里插入图片描述

你可能感兴趣的:(python)