【Matplotlib】matplotlib库 中 pyplot.scatter() 的使用

系列文章目录


第二章 Matplotlib 库中 pyplot.scatter() 的使用


目录

系列文章目录

文章目录

一、pyplot.sctter() 函数的参数详解

二、pyplot.sctter()  的使用


一、pyplot.scatter() 函数的参数详解

pyplot.scatter() 函数就是用来绘制散点图的。我们先来看一下官方文档。

官方文档:

matplotlib.pyplot.scatter(x, y,

s=None,

marker=None,

c=None,

cmap=None,

norm=None,

vmin=None,

vmax=None,

alpha=None,

linewidths=None,

verts=None,

edgecolors=None,

*,

data=None,

**kwargs)
 

其中:

  • x, y,就是散点的坐标,数据点的位置
  • s=None,  散点的大小,面积
  • marker=None,   散点样式,默认值为实心圆,'o'
  • c=None,  散点的颜色,默认为‘b’, 也就是blue
  • cmap=None,  指的是matplotlib.colors.Colormap,也就是色彩映射表实例或注册的色彩映射表名称,相当于多个调色盘的合集。仅当 c 是浮点数组时才使用 cmap
  • norm=None, 如果 c 是浮点数组,则使用范数 在 0 到 1 的范围内缩放颜色数据 c,以便映射到色彩映射表 cmap
  • vmin=None, vmax=None, 这两个参数与默认规范结合使用,以将颜色数组 c 映射到色彩映射表 cmap。如果为 None,则使用颜色数组的相应最小值和最大值。当给出数时,不可以使用这两个参数。
  • alpha=None,  散点透明度([0, 1]之间的数,0表示完全透明,1则表示完全不透明)
  • linewidths=None, 散点的边缘线宽
  • edgecolors=None,  散点的边缘颜色

官方注释: c (颜色)可能的输入如下,

1 要使用 cmap 和norm 数映射到颜色的 n 个数字的标量或序列。

2 一个 2D 数组,其中的行为 RGB 或 RGBA。

3 长度为 n 的颜色序列。

4 单色格式字符串。

norm、vmin、vmax 这3个参数是对散点颜色亮度进行设置

二、pyplot.scatter()  的使用

既然了解了函数的各个参数,那么话不多说,我们直接上代码。

首先只给散点坐标,其他参数默认,来看看绘制出的散点图

# 导入两个库
import matplotlib.pyplot as plt
import numpy as np

# 固定随机状态,可以获得重复数据 
np.random.seed(10)

n = 20
# rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
x = np.random.rand(n)
y = np.random.rand(n)

# 绘制散点图
plt.scatter(x, y)
plt.show()

输出结果:(随机生成了20个散点)

 

设置一下常用参数,来看看效果

# 导入两个库
import matplotlib.pyplot as plt
import numpy as np

# 固定随机状态,可以获得重复数据 
np.random.seed(10)

n = 20
# rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
x = np.random.rand(n)
y = np.random.rand(n)
area= 500*np.random.rand(n)
colors=np.random.rand(n)

# 绘制散点图
plt.scatter(x, y, s = area, marker = '*', c = colors, alpha = 0.6)

plt.show()

输出结果:(生成20个星状的散点)

设置色彩映射表 cmap 参数,使用调色盘中的颜色。

# 导入两个库
import matplotlib.pyplot as plt
import numpy as np

# 固定随机状态,可以获得重复数据 
np.random.seed(10)

n =20
# rand( )函数根据给定维度生成[0,1)之间的随机数据(包含0,不包含1)
x = np.random.rand(n)  
y = np.random.rand(n)
area= 2000*np.random.rand(n)
colors=np.random.rand(n)

# 绘制散点图
plt.scatter(x, y, s = area, marker = 'o', c = colors, alpha = 0.6, cmap= 'viridis' )

# 绘制颜色条
plt.colorbar()
plt.show()

输出结果:

注意:

  • 这里 cmap= 'viridis' ,意思就是选择这个调色盘,将参数c中获取到的数值,映射到“色盘”中已经对应好的颜色上。
  • 从“色盘”viridis中获取到的颜色,可以通过plt.colorbar( )显示为颜色条。

设置范数 norm  参数,控制颜色变化范围

其中,我们需要用到colors.Normalize( ),使用方法如下:

class matplotlib.colors.Normalize(vmin=None, vmax=None)

# 使用norm 范数参数
# 导入三个库
import matplotlib.pyplot as plt
import numpy as np
from matplotlib import colors  # 调整“色盘”,导入colors

# 固定随机状态,可以获得重复数据 
np.random.seed(10)

n =20
# randn( )函数返回一个或一组样本,具有标准正态分布(标准正态分布又称为u分布,是以0为均值、以1为标准差的正态分布,记为N(0,1)。)。
x = np.random.randn(n)  
y = np.random.randn(n)
area = 2000*np.random.rand(n)
color = np.random.rand(n)

changecolor = colors.Normalize(vmin=0.4, vmax=0.8)


# 绘制散点图
plt.scatter(x, y, s = area, marker = 'o', c = color, alpha = 0.6, cmap= 'viridis' , norm = changecolor )

# 绘制颜色条
plt.colorbar()
plt.show()

输出结果:

 可以看见,颜色的变化范围变成了(0.4, 0.8)

  • 9
    点赞
  • 39
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晓亮.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值