Matplotlib散点图(scatter)制作一个轨迹图

参考链接:

https://blog.csdn.net/huangguohui_123/article/details/108208134

https://blog.csdn.net/weixin_31556371/article/details/112224367

https://blog.csdn.net/sinat_41299610/article/details/106912048

https://blog.csdn.net/weixin_44176696/article/details/105352402

https://www.javaer101.com/es/article/53291587.html

https://blog.csdn.net/The_Time_Runner/article/details/89927708

使用Matplotlib散点图(scatter)制作一个轨迹图

1.问题背景

具有每个点的位置信息,打算在点上做一些标注,同时将具有联系的点使用箭头相连。

最终使用scatter散点图来完成图片的绘制工作。

2.应用到的知识内容

2.1 散点图基础

1
2
3
plt.scatter(
['x', 'y', 's=None', 'c=None', 'marker=None', 'cmap=None', 'norm=None', 'vmin=None', 'vmax=None', 'alpha=None', 'linewidths=None', 'verts=<deprecated parameter>', 'edgecolors=None', '*', 'plotnonfinite=False', 'data=None', '**kwargs'],
)

x, y:具有相同长度的一维数据,散点的X和Y轴对应的数据。

s:数值型,控制点的大小。

c:字符串,控制点的颜色,常用的颜色字符串为b(blue,蓝色)、c(cyan,品红)、g(green,绿色)、k(black,黑色)、m(magenta,红色)、w(white,白色)、y(yellow,黄色)。

marker:字符串,控制点的样式,样式列表如下表所示。

cmap:当c是一个浮点数数组的时候才使用, 可选的参数 ;

norm:将数据亮度转化到0-1之间,只有c是一个浮点数的数组的时候才使用, 可选的参数 ;

vmin , vmax:实数,当norm存在的时候忽略。用来进行亮度数据的归一化 , 可选的参数 ;

alpha:实数,0-1之间, 可选的参数 ;

linewidths:标记点的长度, 可选的参数 ;

2.2 自定义点的样式

1

指定marker参数就可以选择我们想要的点的样式。

1
plt.scatter(x, y, marker='.')

2.3 点大小

指定s参数就可以控制点的大小。

2.4 点的颜色和透明度

使用c和alpha参数来控制透明度。

1
plt.scatter(x, y,c=colors,alpha=0.5)

颜色的选取可以参照https://blog.csdn.net/sinat_41299610/article/details/106912048来进行选择。

可以通过为每一个点指定不同的颜色,以区分不同的点。

这个时候需要对c传入一个数字列表来代表程度。其中颜色列表的意思是,在下图的颜色带中按比例取颜色。如 s=[1, 2] 表示的两个颜色分别是:最左边的颜色和最右边的颜色;s=[100, 103, 150, 200] 的四个颜色分别是:最左边的颜色,最左边的颜色(100和103差别不大),中间的颜色,最右边的颜色。

3

2.5 线宽度

使用linewidths参数来控制线宽度。

1
plt.scatter(x, y, linewidths=lines)

2

2.6 加入箭头

使用quiver来构造箭头。

1
2
3
4
5
6
7
8
9
10
11
plt.quiver(X, Y, U, V, angles='xy', scale=1, scale_units='xy')

参数解释:
X : 箭头(向量)起点x坐标
Y : 箭头(向量)起点y坐标
U : 箭头终点坐标为 X+U
V : 箭头终点坐标为 Y+V

注意,这样点到点的箭头,需要将
scale 参数设置为 1
scale_units 参数设置为 'xy'

2.7 加入注解文字

使用text来加入注解文字。

1
matplotlib.pyplot.text(x, y, s, fontdict=None, withdash=False, **kwargs)

通过函数方式,向axes对象添加text对象,确切的说是向axes的(x,y)位置添加s文本。返回一个text实例。

参数详解

1.x, y: scalars 放置text的位置

2.s : str 内容text

3.fontdict : dictionary, optional, default: None 一个定义s格式的dict

4.withdash : boolean, optional, default: False。如果True则创建一个 TextWithDash实例。

以下为其他常用参数:

5.fontsize设置字体大小,默认12,可选参数 [‘xx-small’, ‘x-small’, ‘small’, ‘medium’, ‘large’,‘x-large’, ‘xx-large’],也可以是数字。

6.fontweight设置字体粗细,可选参数 [‘light’, ‘normal’, ‘medium’, ‘semibold’, ‘bold’, ‘heavy’, ‘black’]

7.fontstyle设置字体类型,可选参数[ ‘normal’ | ‘italic’ | ‘oblique’ ],italic斜体,oblique倾斜

8.verticalalignment设置水平对齐方式 ,可选参数 : ‘center’ , ‘top’ , ‘bottom’ ,‘baseline’

9.horizontalalignment设置垂直对齐方式,可选参数:left,right,center

10.rotation(旋转角度)可选参数为:vertical,horizontal 也可以为数字

11.alpha透明度,参数值0至1之间

12.backgroundcolor标题背景颜色

13.bbox给标题增加外框 ,常用参数如下:

​ boxstyle方框外形

​ facecolor(简写fc)背景颜色

​ edgecolor(简写ec)边框线条颜色

​ edgewidth边框线条大小


Matplotlib散点图(scatter)制作一个轨迹图
https://fulequn.github.io/2022/04/Article202204241/
作者
Fulequn
发布于
2022年4月24日
许可协议