用法
matplotlib.pyplot.scatter(x, y, s=None, c=None, marker=None, cmap=None, norm=None, vmin=None, vmax=None, alpha=None, linewidths=None, *, edgecolors=None, plotnonfinite=False, data=None, **kwargs)
参数介绍
| x,y | 绘制散点图的数据 | float or array-like, shape(n,) |
|---|---|---|
| s | 一个实数或者一个数组大小为(n,) ,可选参数,指的是散点中心的大小 | flaot or array-like, shape(n,) |
| – | – | – |
| c | 散点的颜色 | array-like or list of colors or color |
| – | – | – |
| marker | 标记的样式,默认是’o’ | |
| – | – | – |
| cmap | Colormap实例或注册的Colormap名称。仅当c是浮点数组时才使用cmap | |
| – | – | – |
| norm | 也是一个颜色数据,使用norm在0到1的范围内缩放颜色数据c,映射到colormap cmap,如果没有,使用默认颜色,规范化 | default:None |
| – | – | – |
| vmin,vmax | vmin和vmax与默认范数一起使用,将颜色数组c映射到colormap cmap。如果没有,则分别使用颜色数组的最小值和最大值。在给定范数时使用vmin/vmax是错误的 | float, default:None |
| – | – | – |
| alpha | 透明度,数字在0,1之间 | float,default: None |
| – | – | – |
| linewidths | 标记边缘的线宽 | float or array-like,default: 1.5 |
| – | – | – |
| edgecolors | 散点图边缘线颜色 | sequence of color or color 'face’与散点图面的颜色一样,‘none’ 不会绘制边缘 |
| – | – | – |
| plotnonfinite | 是否使用非有限c(即inf、-inf或nan)绘制点。如果为True,则使用错误的colormap颜色绘制点 |
有两个参数我放到一起,用代码同时进行解释c,edgecolors
参数c 和 edgecolors, linewidths
import matplotlib.pyplot as plt
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
# 为了显示出c和edgecolors 我将linewidths调增到15
plt.scatter(a, b, linewidths=15,c='red',edgecolors=['black', 'green','cyan','lightgreen'])

参数 s
import matplotlib.pyplot as plt
%matplotlib inline
plt.figure(figsize=(12,6))
plt.rcParams['font.family'] = 'SimHei'
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
plt.subplot(121)
plt.title('不添加s')
plt.scatter(a,b,c='red',linewidths=6)
plt.subplot(122)
plt.title('添加s,s=1.5')
plt.scatter(a,b,c='red',s=1.5,linewidths=6)
plt.show()

参数marker
import matplotlib.pyplot as plt
plt.figure(figsize=(12,6))
plt.rcParams['font.family'] = 'SimHei'
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
plt.subplot(131)
plt.title('标准')
plt.scatter(a,b,linewidths=6)
plt.subplot(132)
plt.title("设置marker 'x'")
plt.scatter(a,b,marker='x')
plt.subplot(133)
plt.title("设置marker 'v'")
plt.scatter(a,b,marker='v')
plt.show()

marker属性
| marker | description |
|---|---|
| . | 点 |
| – | – |
| , | 像素,类似与方块 |
| – | – |
| o | 圈,默认值 |
| – | – |
| v | 倒三角形 |
| – | – |
| ^ | 正三角形 |
| – | – |
| < | 左三角形 |
| – | – |
| > | 右三角形 |
| – | – |
| 1 | tri_down |
| 2 | tri_up |
| 3 | tri_left |
| 4 | tri_right |
| 8 | 八角形 |
| s | 正方形 |
| p | 五角 |
| * | 星星 |
| h | 六角1 |
| H | 六角2 |
| + | 加号 |
| x | x号 |
| D | 钻石 |
| d | 细钻 |
| “l”->一个竖线 | v线 |
| _ | H线 |
先更新这么多,后面陆陆续续会介绍完
这里显示下maker=1 or 2 or 3 or 4
import matplotlib.pyplot as plt
plt.figure(figsize=(12,6))
plt.rcParams['font.family'] = 'SimHei'
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
plt.subplot(141)
plt.title("设置marker '1'")
plt.scatter(a,b,s=100,marker='1')
plt.subplot(142)
plt.title("设置marker '2'")
plt.scatter(a,b,s=100,marker='2')
plt.subplot(143)
plt.title("设置marker '3'")
plt.scatter(a,b,s=100,marker='3')
plt.subplot(144)
plt.title("设置marker '4'")
plt.scatter(a,b,s=100,marker='4')
plt.show()

参数cmap
cmap主要是配合c参数一起使用的,c可以是一个颜色序列,使用数字列表代替
plt.cm.Spectral是一个颜色映射集,并不代表说明[0:5]代表某个颜色,参数c出现5个不同的值
然后为每个值分配一个颜色
import matplotlib.pyplot as plt
a = [1, 2, 3, 4, 5]
b = [6, 7, 8, 9, 10]
c = [0, 1, 2, 3, 4]
plt.rcParams['font.family'] = 'SimHei'
plt.subplot(121)
plt.title('标准')
plt.scatter(a, b, c=c, s=80)
plt.subplot(122)
plt.title('添加cmap')
plt.scatter(a, b, c=c, s=80, cmap=plt.cm.Spectral)
plt.show()

vmin,vmax,norm散点亮度设置, alpha透明度
plt.colorbar()颜色条
散点图进行多出设置,即成为气泡图,下面进行展示
import matplotlib.pyplot as plt
# 导入颜色条库
from matplotlib import colors
import numpy as np
x = np.random.randn(50) # 随机产生50个X坐标
y = np.random.randn(50) # 随机产生50个Y坐标
color = np.random.rand(50) # 随机产生用于映射颜色的数值
size = 500 * np.random.rand(50) # 随机改变散点大小的数值
changecolor = colors.Normalize(vmin=0.4, vmax=0.8)
plt.scatter(x, y, c=color, s = size, alpha=0.3, cmap='viridis', norm=changecolor)
plt.colorbar() # 显示颜色条
plt.show()











