我想在散点图中给每一个数据点添加一个label,让不同的label对应不同的点型
大概就是这样的,
x = [1,2,3,4]
y=[1,2,3,4]
z=[a,b,a,c]
其中有4个点,x,y是点的坐标,z里面是对应点的名称(label),我想绘制一个散点图,让不同label的点具有不同的形状。请问该怎么做,
我想在散点图中给每一个数据点添加一个label,让不同的label对应不同的点型
x = [1,2,3,4]
y=[1,2,3,4]
z=[a,b,a,c]
其中有4个点,x,y是点的坐标,z里面是对应点的名称(label),我想绘制一个散点图,让不同label的点具有不同的形状。请问该怎么做,
要在散点图中为每个点添加 label,可以使用 matplotlib 库中的 annotate 函数。
这里是一个示例代码:
import matplotlib.pyplot as plt
# 定义 x, y 和 z
x = [1, 2, 3, 4]
y = [1, 2, 3, 4]
z = ['a', 'b', 'a', 'c']
# 使用 scatter 绘制散点图
plt.scatter(x, y, c=z)
# 为每个点添加 label
for i, txt in enumerate(z):
plt.annotate(txt, (x[i], y[i]))
# 显示图像
plt.show()
这将在一个新窗口中显示一个散点图,并为每个点添加了 label。
也可以通过设置 arrowprops 参数来控制箭头的样式,或者通过设置 fontsize 参数来控制 label 的字体大小。
例如,可以使用下面的代码来控制箭头的样式和 label 的字体大小:
import matplotlib.pyplot as plt
# 定义 x, y 和 z
x = [1, 2, 3, 4]
y = [1, 2, 3, 4]
z = ['a', 'b', 'a', 'c']
# 使用 scatter 绘制散点图
plt.scatter(x, y, c=z)
# 为每个点添加 label
for i, txt in enumerate(z):
plt.annotate(txt, (x[i], y[i]), arrowprops=dict(facecolor='black', shrink=0.05), fontsize=12)
# 显示图像
plt.show()