标签与seaborn中的lineplot中的图形不一样?

问题描述 投票:0回答:1

comp_fib1=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1,1,1,2,3,6,7,7,11,18,30,47,88,143]
comp_fib2=[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]


import matplotlib.pyplot as plt
import seaborn as sns

sns.lineplot(
    data=[comp_fib1,comp_fib2],legend=False,markers=['*','o'],palette='colorblind')
plt.legend(title='Fibonacci series',loc='upper left',labels={'fib1','fib2'})
plt.gca().get_legend_handles_labels()

This is the image of the figure formed

我使用了上面的代码,我自定义了手柄,但它们与图中不一样。 有什么方法可以让我获得带有自定义名称的正确句柄吗?

python matplotlib seaborn matplotlib-basemap seaborn-0.12.x
1个回答
0
投票

也许这个是一个相关的问题。

作为一个简单的解决方法,我发现使用 Pandas 有助于减少通过

plt
编辑图例标签的需要(这会破坏最终渲染)。您只需创建一个包含两列的 DataFrame,其名称是您想要在图例中显示的标签。默认情况下,Seaborn 将使用这些列名称作为图例标签。

import pandas as pd

df = pd.DataFrame({'fib1': comp_fib1, 'fib2': comp_fib2})
ax = sns.lineplot(data=df, legend='full', markers=['*', 'o'], palette='colorblind')
ax.legend(title='Fibonacci series', loc='upper left')

© www.soinside.com 2019 - 2024. All rights reserved.