Matplotlib scatter plot with different text at each data point

后端 未结 9 2192
挽巷
挽巷 2020-11-22 12:50

I am trying to make a scatter plot and annotate data points with different numbers from a list. So, for example, I want to plot y vs x and annotate

9条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-22 13:25

    In case anyone is trying to apply the above solutions to a .scatter() instead of a .subplot(),

    I tried running the following code

    y = [2.56422, 3.77284, 3.52623, 3.51468, 3.02199]
    z = [0.15, 0.3, 0.45, 0.6, 0.75]
    n = [58, 651, 393, 203, 123]
    
    fig, ax = plt.scatter(z, y)
    
    for i, txt in enumerate(n):
        ax.annotate(txt, (z[i], y[i]))
    

    But ran into errors stating "cannot unpack non-iterable PathCollection object", with the error specifically pointing at codeline fig, ax = plt.scatter(z, y)

    I eventually solved the error using the following code

    plt.scatter(z, y)
    
    for i, txt in enumerate(n):
        plt.annotate(txt, (z[i], y[i]))
    

    I didn't expect there to be a difference between .scatter() and .subplot() I should have known better.

提交回复
热议问题