一眨眼,算不算少年 2023-01-07 15:22 采纳率: 33.3%
浏览 18

python绘制散点图,带label

我想在散点图中给每一个数据点添加一个label,让不同的label对应不同的点型

img


大概就是这样的,

x = [1,2,3,4]
y=[1,2,3,4]
z=[a,b,a,c]
其中有4个点,x,y是点的坐标,z里面是对应点的名称(label),我想绘制一个散点图,让不同label的点具有不同的形状。请问该怎么做,

  • 写回答

1条回答 默认 最新

  • m0_54204465 2023-01-07 17:12
    关注

    要在散点图中为每个点添加 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()
    
    
    评论

报告相同问题?

问题事件

  • 创建了问题 1月7日

悬赏问题

  • ¥15 找一个QT页面+目标识别(行人检测)的开源项目
  • ¥15 有没有整苹果智能分拣线上图像数据
  • ¥20 有没有人会这个东西的
  • ¥15 cfx考虑调整“enforce system memory limit”参数的设置
  • ¥30 航迹分离,航迹增强,误差分析
  • ¥15 Chrome Manifest扩展引用Ajax-hook库拦截请求失败
  • ¥15 用Ros中的Topic通讯方式控制小乌龟的速度,走矩形;编写订阅器代码
  • ¥15 LLM accuracy检测
  • ¥15 pycharm添加远程解释器报错
  • ¥15 如何让子窗口鼠标滚动独立,不要传递消息给主窗口