绘图图例显示未知项目/相同的图例项目以不同的线条显示两次
Posted
技术标签:
【中文标题】绘图图例显示未知项目/相同的图例项目以不同的线条显示两次【英文标题】:Plot legend shows unknown item/ same legend item shown twice with line different style 【发布时间】:2019-04-01 05:11:54 【问题描述】:我正在黑白 png 上绘制一些路线。现在看来,图例中有一个不应该存在的项目。我正在迭代一个熊猫数据框并通过唯一的 ID 识别不同的路线。我在数据框的开头也有一个起点和一个终点,所以在i=0
和i=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()
这里的结果图:
【问题讨论】:
【参考方案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()
【讨论】:
以上是关于绘图图例显示未知项目/相同的图例项目以不同的线条显示两次的主要内容,如果未能解决你的问题,请参考以下文章