Python scatter详解

发布时间:2019-04-21 21:50:19.08编辑:佚名阅读(1609)

函数原型:

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形状。

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

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

结果如下:

更多实例:

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

三维散点图的函数原型

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默认为0

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

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

  关键字:Pythonscatter详解


鼓掌

0

正能量

0

0

呵呵

0


评论区