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()
我使用了上面的代码,我自定义了手柄,但它们与图中不一样。 有什么方法可以让我获得带有自定义名称的正确句柄吗?
也许这个是一个相关的问题。
作为一个简单的解决方法,我发现使用 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')