参考链接:
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 散点图基础
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 自定义点的样式
指定marker参数就可以选择我们想要的点的样式。
plt.scatter(x, y, marker='.')
2.3 点大小
指定s参数就可以控制点的大小。
2.4 点的颜色和透明度
使用c和alpha参数来控制透明度。
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差别不大),中间的颜色,最右边的颜色。
2.5 线宽度
使用linewidths参数来控制线宽度。
plt.scatter(x, y, linewidths=lines)
2.6 加入箭头
使用quiver来构造箭头。
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来加入注解文字。
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边框线条大小