在绘图的时候,关于颜色的参数总是很模糊,可以使用"c"也可以使用“cmap”但是不知道区别在哪里,本文除了介绍散点图的参数外,还会详细的介绍一下“颜色”参数相关内容
散点图:plt.scatter()
- 常用参数说明:
- X, Y :散点的位置
- alpha:透明度,取值[0,1]且取0时透明
- s:散点大小
- c/color:散点颜色,
- cmap:设置散点颜色
- marker:散点形状(详见plt.plot绘制)
- linewidths:散点边框宽度
- edgecolors:散点表框颜色
其中,每个散点其实是有边框的,只是颜色和散点颜色一致,将边框宽度加大就能看见~
- RGB 三元组是什么
RGB 三元组是包含三个元素的行向量,其元素分别指定颜色中红、绿、蓝分量的强度。强度值必须位于 [0,1] 范围内;而函数中有关颜色的参数,实际上是传入了一个“由 RGB 三元组组成的三列矩阵”。
(1)cmap参数的值:默认 ‘default’ ,即将目标对象的颜色图设置为默认颜色图。除此之外,还有很多“颜色图”可以选择:
Accent, Accent_r, autumn, autumn_r, binary, binary_r, bone, bone_r, brg, brg_r, bwr, bwr_r, cividis, cividis_r, cool, cool_r, coolwarm, coolwarm_r, nipy_spectral, nipy_spectral_r, ocean, ocean_r, pink, pink_r, spring, spring_r, summer, summer_r, tab10, winter, winter_r…
每种颜色图实际上类似于一个色卡,举例如下:
当我们输入"cmap"参数时,会将颜色的范围定义在当前颜色卡上
(2)c参数的值:在介绍“折线图”绘制的时候,已经将列表呈现出来了,但是实际上,每种颜色是对应了一个RGB向量的,而参数"c"只是将常见颜色的 RGB 三元组值列出来
- 实例
import numpy as np
import matplotlib.pyplot as plt
x = [0.5]
y = [0.5]
x2 = np.random.rand(100) # 取值在(0,1)之间的随机数,100个
y2 = np.random.rand(100)
area = np.random.rand(100) * 1000
# 输入c和edgecolors参数时,可以缩写颜色名称,也可以不缩写
plt.scatter(x, y,s=1000,marker='v', c='black',edgecolors='r',linewidths=2)
# 生成一个大小随机,颜色随机,色卡为“rainbow”的散点图
plt.scatter(x2, y2, s=area, c=area,cmap='rainbow', alpha=0.7)
plt.show()