【问题标题】:Plot legend shows unknown item/ same legend item shown twice with line different style绘图图例显示未知项目/相同的图例项目以不同的线条显示两次
【发布时间】:2019-04-01 05:11:54
【问题描述】:

我正在黑白 png 上绘制一些路线。现在看来,图例中有一个不应该存在的项目。我正在迭代一个熊猫数据框并通过唯一的 ID 识别不同的路线。我在数据框的开头也有一个起点和一个终点,所以在i=0i=1,我改为绘制marker='o',所以我可以在我的绘图/行上看到单个点在我的数据框中。到目前为止一切正常,但正如您在 i=0 的图例中看到的那样,有 2 个条目。曾经是starting point,但在第二行中它添加了一条橙色线。这个怎么可能?在数据框中,id=0 肯定只有 1 行。

这是我的代码和示例数据框:

import pandas as pd
import matplotlib.pyplot as plt
fig, ax = plt.subplots()
df = pd.DataFrame({'x':[100,60,1,1,1,5,4,4], 'y':[100,125,1,2,3,10,10,9],'id':[0,1,2,2,2,3,3,3]})
for i, g in df.groupby('id'):     
    if(i==0):
        g.plot(x='x',y='y',ax=ax,marker='o',title="Alternative Routes",label="Start Punkt")
    if(i==1):
        g.plot(x='x',y='y',ax=ax,marker='o',title="Alternative Routes",label="End Punkt")
    else:
        g.plot(x='x',y='y',ax=ax, title="Alternative Routes",label=i)
plt.show()

这里的结果图:

【问题讨论】:

    标签: python pandas matplotlib plot legend


    【解决方案1】:

    我自己找到了答案:应该是 elif 而不是 if for i==1

    import pandas as pd
    import matplotlib.pyplot as plt
    fig, ax = plt.subplots()
    df = pd.DataFrame({'x':[100,60,1,1,1,5,4,4], 'y':[100,125,1,2,3,10,10,9],'id':[0,1,2,2,2,3,3,3]})
    for i, g in df.groupby('id'):     
        if(i==0):
            g.plot(x='x',y='y',ax=ax,marker='o',title="Alternative Routes",label="Start Punkt")
        elif(i==1):
            g.plot(x='x',y='y',ax=ax,marker='o',title="Alternative Routes",label="End Punkt")
        else:
            g.plot(x='x',y='y',ax=ax, title="Alternative Routes",label=i)
    plt.show()
    

    【讨论】:

      猜你喜欢
      • 2017-05-01
      • 2021-11-07
      • 1970-01-01
      • 1970-01-01
      • 2013-07-30
      • 2011-12-29
      • 1970-01-01
      • 2020-02-05
      • 1970-01-01
      相关资源
      最近更新 更多