Python 如何在使用*args&;打印时显示所有图例;海本
我的数据和代码如下Python 如何在使用*args&;打印时显示所有图例;海本,python,matplotlib,seaborn,legend,Python,Matplotlib,Seaborn,Legend,我的数据和代码如下 w = [1,2,3,4,5,6,7,8,9,10] vals = [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,8,8,8,8,7,1],[1,4,2,4,8,9,8,8,7,2]] def plot_compare(*id_nums): fig = plt.figure(figsize=(10, 5)) leg=[] for id_num in id_nums: rel = vals[id_num]
w = [1,2,3,4,5,6,7,8,9,10]
vals = [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,8,8,8,8,7,1],[1,4,2,4,8,9,8,8,7,2]]
def plot_compare(*id_nums):
fig = plt.figure(figsize=(10, 5))
leg=[]
for id_num in id_nums:
rel = vals[id_num]
sns.lineplot(x=w, y=rel)
leg.append(id_num)
fig.legend(labels=[leg],loc=5,);
plot_compare(0,2)
这个想法是用一个函数得到多个直线图(我的实际数据我有很多需要绘制的值)
当我像上面那样运行代码时,我得到的图如下。
线条图与我想要的完全一样,但是图例只是一个项目而不是两个项目(因为我已经绘制了两个线条图)。
我曾尝试将图例线移动到for循环内部,但没有任何用处。我想要一个5月的传奇作为线图。
有人能帮忙吗
您将图例作为列表的列表。改为使用图图例(标签=支腿,位置=5) 使用:
w = [1,2,3,4,5,6,7,8,9,10]
vals = [[1,2,3,4,5,6,7,8,9,10],[2,4,6,8,8,8,8,8,7,1],[1,4,2,4,8,9,8,8,7,2]]
def plot_compare(*id_nums):
fig = plt.figure(figsize=(10, 5))
leg=[]
for id_num in id_nums:
rel = vals[id_num]
sns.lineplot(x=w, y=rel)
leg.append(id_num)
fig.legend(labels=leg,loc=5)
plt.show()
plot_compare(0,2)