今天想在散点图的某些特定的点外面画圆圈标记,从下面的文章找到一些灵感,只要在原来的散点图上面给指点添加相应的标志,设置其透明度就能够实现该想法。html
顺便复习下散点图的用法。数组
你们平时为了直观地显示数据的分布状况,在画散点图的时候,简单地把数据点用圆点标出来,像这样:app
这样:dom
还有这样:ide
欢迎光临程序代写小店https://item.taobao.com/item.htm?spm=a230r.1.14.59.255028c3ALNkZ0&id=586797758241&ns=1&abbucket=15#detail函数
可直接联系客服QQ交代需求:953586085
欢迎点击连接加入群聊【程序代写-接单群】共同致富:https://jq.qq.com/?_wv=1027&k=5WxihsL spa
群号:7330654273d
然而今天我想给你们展现的散点图,或许没有那么直观地反映数据的分布状况,不够实用,可是真的很美很艺术,每一个的点的颜色和大小都不同,形状也是多变的。好比五角星的散点图: code
圆点的散点图: orm
Y形的散点图:
等等还有不少,那么这些漂亮的形状是怎么画出来的呢?其实代码很简单:
-
from numpy import *;
-
N = 50 # 点的个数
-
x = np.random.rand(N) * 2 # 随机产生50个0~2之间的x坐标
-
y = np.random.rand(N) * 2 # 随机产生50个0~2之间的y坐标
-
colors = np.random.rand(N) # 随机产生50个0~1之间的颜色值
-
area = np.pi * (15 * np.random.rand(N))**2 # 点的半径范围:0~15
-
# 画散点图
-
plt.scatter(x, y, s=area, c=colors, alpha=0.5, marker=(9, 3, 30))
-
plt.show()
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
这里用到一个matplotlib.pyplot子库中画散点图的函数 matplotlib.pyplot.scatter(x, y, s=20, c=None, marker='o',
cmap=None, norm=None, vmin=None, vmax=None, alpha=None,
linewidths=None, verts=None, edgecolors=None, hold=None,
data=None, **kwargs)
这个函数接收的参数不少,有默认值的平时也不须要咱们指定,是可选的,此次咱们用到的除了基本的x ,y参数,还有c,s,alpha和marker,c就是为点指定的颜色数组,s是点的面积大小,alpha是点的颜色的透明度,marker是指定点标记的形状。在例子里指定透明度为0.5,c和s是随机生成的,咱们要改变的是marker的值,marker有不少值可供选择,下表展现了在例子代码的基础上,改变marker的值后的效果:
marker | result |
---|---|
”.” | ![]() ![]() |
”,” | ![]() ![]() |
“o” | ![]() ![]() |
“v” | ![]() ![]() |
“^” | ![]() ![]() |
“<” | ![]() ![]() |
“>” | ![]() ![]() |
“1” | ![]() ![]() |
“2” | ![]() ![]() |
“3” | ![]() ![]() |
“4” | ![]() ![]() |
“8” | ![]() ![]() |
“s” | ![]() ![]() |
“p” | ![]() ![]() |
“*” | ![]() ![]() |
“h” | ![]() ![]() |
“H” | ![]() ![]() |
“+” | ![]() ![]() |
“x” | ![]() ![]() |
“D” | ![]() ![]() |
“d” | ![]() ![]() |
“ | ” |
“_” | ![]() ![]() |
“None” | 没错就是什么都没有。。。![]() ![]() |
“$…$” | ![]() ![]() |
(numsides, style, angle) eg:(9,0, 30) 注:numsides是边的个数, angle是旋转角度, style只有0,1,2,3四个值 |
![]() ![]() |
(numsides, style, angle) eg:(9,1, 30) |
![]() ![]() |
(numsides, style, angle) eg:(9,2, 30) |
![]() ![]() |
(numsides, style, angle) eg:(9,3, 30) 注:此时numsides和angle的值自动被忽略 |
![]() ![]() |
…… 这么多种点的形状符号够咱们用了吧~之后想用哪一种查一下就好啦~