scatter python_Python scatter详解

函数原型: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, hold=None, data=None,**kwargs)

参数作用如下:

x, y位置。

s大小。

c颜色,可能的情况如下:

单一颜色

颜色序列

使用cmap映射到颜色的序列数

一个行为RGB的2-D数组

marker形状。

1119958981213818880.png

cmap调整渐变色或者颜色列表的种类,Matplotlib内置颜色组及渐变颜色和内置命名颜色。

1119959978736750592.png

1119960511094591488.png

norm:数据亮度,默认为no,范围为0-1,float数据。

vmin,vmax:亮度设置,默认为no,若norm实例已使用,该参数无效。

alpha透明度,范围为0-1。

linewidths:描边的宽度。

edgecolors:描边颜色。

基本的使用方法:# 导入必要的模块

import numpy as np

import matplotlib.pyplot as plt

# 产生测试数据

x = np.arange(1, 10)

y = x

fig = plt.figure()

ax1 = fig.add_subplot(111)

# 设置标题

ax1.set_title('Scatter Plot')

# 设置X轴标签

plt.xlabel('X')

# 设置Y轴标签

plt.ylabel('Y')

# 画散点图

ax1.scatter(x, y, c='r', marker='o')

# 设置图标

plt.legend('x1')

# 显示所画的图

plt.show()

结果如下:

1119964580265725952.png

更多实例:import numpy as np

import matplotlib.pyplot as plt

n = 100

x = np.random.rand(n)

y = np.random.rand(n)

s = (30 * np.random.rand(n)) ** 2

color = np.random.rand(n)

plt.scatter(x, y, s, c=color, alpha=0.5, marker="v")

plt.show()

1119966166685716480.png

三维散点图的函数原型p3d.Axes3D.scatter( xs, ys, zs=0, zdir=’z’, s=20, c=None, depthshade=True, *args, **kwargs )

p3d.Axes3D.scatter3D( xs, ys, zs=0, zdir=’z’, s=20, c=None, depthshade=True,*args, **kwargs)

三维散点图在p3d.Axes3D中,有两个版本,但效果都一样,这里就挑上面那个版本,下面解释参数:

xs, ys代表点的x, y轴坐标

zs代表z轴坐标,但有两种形式,第一种就是取一个标量,函数原型里默认就是一个标量0,也就是默认所有的点都画在一个z=0的水平平面上;第二种就是取和xs、ys同样shape的数组,从而指定每个点的实际z轴坐标,如下:

zs默认为0import numpy as np

import matplotlib.pyplot as plt

import mpl_toolkits.mplot3d as p3d

fig = plt.figure()

ax = p3d.Axes3D(fig)

x = np.random.randn(1000)

y = np.random.randn(1000)

ax.scatter(x, y, c='b', s=10, alpha=0.5)

ax.scatter(x + 4, y, c='b', s=10, alpha=0.5)

plt.show()

1119973132464164864.pngimport numpy as np

import matplotlib.pyplot as plt

import mpl_toolkits.mplot3d as p3d

fig = plt.figure()

ax = p3d.Axes3D(fig)

z = 6 * np.random.randn(5000)

x = np.sin(z)

y = np.cos(z)

ax.scatter(x, y, z, c='b', s=10, alpha=0.5)

plt.show()

1119975632571338752.png

  • 7
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值