python - 绘图图例显示未知项目/相同的图例项目以不同的线条显示两次
问题描述
我正在黑白 png 上绘制一些路线。现在看来,图例中有一个不应该存在的项目。我正在迭代一个熊猫数据框,并通过唯一的 ID 识别不同的路线。我在数据框的开头也有一个起点和一个终点,所以在i=0
和处i=1
,我改为绘制marker='o'
,所以我可以在我的数据框中的绘图/行上看到单个点。到目前为止一切正常,但正如您在 的图例中看到的那样i=0
,有 2 个条目。一旦starting point
, 但在第二行中,它会添加一条橙色线。这个怎么可能?在数据框中,它肯定只有 1 行,带有id=0
.
这是我的带有示例数据框的代码:
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()
解决方案
自己找到了答案:应该是一个elif
而不是一个if
fori==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()
推荐阅读
- javascript - 无论如何要通过 Chrome 扩展程序获取商业网站上的产品名称?
- django - Django-allauth 覆盖自定义表单中的注册方法
- google-chrome-extension - 从 Chrome 扩展中的登录页面按钮重定向到 Google Gmail 登录屏幕
- ssl - 如何告诉 Traefik 2.1 为路由器使用用户定义的通配符证书?
- java - 当我将 EditText 字段留空时应用程序崩溃
- python - Python:算法deos不起作用
- laravel - 如何使用 laravel 在变量中发送查询?
- amazon-web-services - 为什么 EMR 的“Application History”中的 AWS “input”参数对于 Spark 应用程序来说如此之大?
- r - ggplot2:如何根据另一个变量更改箱线图的宽度?
- python - 有没有办法用python在csv中搜索多组单词?