如您所见,符号形状的条目在很大程度上是多余的,因为三个类别“ EN”,“ TF”,“ VA”始终映射为相同的形状,而与颜色无关。我只希望这三个形状具有中性色,就像ggplot一样。
这是DataFrame的样子:
>>> df1
Monat Kat km
Jahr
2014 61 9.219178 NaN 22.19200
51 9.219178 NaN 31.93280
62 9.284932 NaN 53.49220
52 9.383562 NaN 84.31150
64 9.547945 NaN 98.45260
... ... ... ...
2019 48 9.252055 3022.01829
45 9.383562 VA 3090.01239
28 9.613699 VA 3160.66279
20 9.712329 NaN 3249.04139
31 9.778082 NaN 3313.60969
[264 rows x 3 columns]
相关代码段:
for g in df1.groupby(level="Jahr"):
ax.step(g[1].Monat, g[1].km, label=g[0],
color=color_dict[g[0]],
where="post")
for gg in g[1].groupby("Kat"):
ax.scatter(gg[1].Monat, gg[1].km,
label=gg[0],
marker=marker_dict[gg[0]],
color=color_dict[g[0]])
答案 0 :(得分:0)
给我打电话,疯了。但是,您难道不能只是从label
中排除scatter
参数,然后绘制带有相关标记的虚拟图吗?
因此,只需从label=
中排除ax.scatter
,然后:
ax.plot([],[],label='FA')
ax.plot([],[],label='VE')
ax.plot([],[],label='IA')
否则,您将必须动态检测,如果标记已经存在并且跟踪该标记将是一些令人讨厌的代码。它必须是动态的吗?