sim*_*nes 2 python matplotlib seaborn
当我使用 Seaborn 在同一轴上绘制多个线图时,不会创建任何图例。即使我在 sns.lineplot 中为图例提供参数“brief”或“full”,也不会显示任何内容,并且调用 ax.get_legend_handles_labels() 会返回两个空列表。
如何在右侧的框中添加图例,将线条的颜色链接到名称?
import seaborn as sns
import matplotlib.pyplot as plt
import random
fig1 = plt.figure(figsize=(12, 12))
ax = fig1.add_subplot(1, 1, 1)
x = range(10)
series = list()
for i in range(3):
y_i = list()
for j in range(10):
y_i.append(random.randint(0, 50))
sns.lineplot(x=x, y=y_i, ax=ax, legend='brief')
plt.show()
Run Code Online (Sandbox Code Playgroud)
那是因为您将简单列表应用为 x 和 y 数据。它们没有名称或标签等元数据。您可以通过label-kwarg添加标签,例如:
sns.lineplot(x=x, y=y_i, ax=ax, legend='brief', label=str(i))
Run Code Online (Sandbox Code Playgroud)
或者您决定为您的数据使用 Pandas 系列对象或数据框,它们能够提供列名。