基于列的唯一值调整可视化图

问题描述 投票:0回答:1
df = 

         id_easy    latitude    longitude
level_0                 
0        6454       11          3
0        6454       12          4
0        1212       11          3
0        1212       12          4 
2        2323       13          5
2        2323       14          7
2        5454       15          8
2        5454       16          9
3        25603      17          4 
3        141        18          5

我试图根据long的唯一值绘制latlevel_0,这很好:

for i in df.index.unique():
    my_dpi=90
    plt.figure(figsize=(600/my_dpi, 400/my_dpi), dpi=my_dpi)

    plt.plot(df.loc[df.index != i,'longitude'],df.loc[df.index != i,'latitude'] ,
             color='silver', marker='o',linestyle='',linewidth=50, markersize=2)

    plt.plot(df.loc[i,'longitude'],df.loc[i,'latitude']  ,
              color='lightcoral',marker='o',linestyle='',linewidth=2, markersize=3)
    plt.show()

我在df的镜头中得到了4个地块。这是示例。因此,我可以看到与level_0 0、1、2和3有关的点(在4个不同的图中。我仅附加了一个以了解一个想法)。

enter image description here

问题:

我们可以看到,对于level_0的每个值,我们有2个id_easy的值。我应该在代码中添加些什么,以获取每种唯一id_easy的不同颜色?例如:在level_0 = 0中,以一种颜色绘制long = latid_easy6454,以另一种颜色绘制1212。抱歉,无法解释

python pandas matplotlib
1个回答
0
投票

您可以尝试groupby

fig, ax = plt.subplots()
for i,d in df.groupby(level=0):
    ax.scatter(data=d,x='latitude', y='longitude',label=i)

ax.legend()

输出:

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.