Легенда в моем участке показывает значок маркера дважды в легендеMatplotlib сюжет легенды показывает маркеры дважды
Код, который произвел этот сюжет дается ниже
import pandas as pd
import random
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import numpy as np
N = 15
colors = cm.rainbow(np.linspace(0, 1, N))
df = []
for i in range(N):
s = 'NAME %d' % i
df.append(dict(x=random.random(), y=random.random(), name=s))
df = pd.DataFrame(df)
c = 0
labels = []
fig, ax = plt.subplots(figsize=(12,12))
for name, group in df.groupby('name'):
x = group['x'].values[0]
y = group['y'].values[0]
color = colors[c]
c += 1
ax.plot(x, y, color=color, marker='o', linestyle='', label=name)
labels.append(name)
handels, _ = ax.get_legend_handles_labels()
ax.legend(handels, labels)
Почему это происходит?
My actual df
имеет несколько записей для каждого имени, поэтому я делаю groupby
. Здесь что-то не хватает?
По умолчанию больше смысла, если у вас есть непустой стиль линии. – tacaswell