python绘制散点图
python 绘制散点图
·
用法
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()
更多推荐
已为社区贡献7条内容
所有评论(0)