Python 如何使用特定列在Seaborn中绘制多线图?

Python 如何使用特定列在Seaborn中绘制多线图?,python,pandas,dataframe,plot,seaborn,Python,Pandas,Dataframe,Plot,Seaborn,我有一个更大的数据帧,类似于此格式: df = pd.DataFrame([{'name': 'A', '2015': 99, '2016':98, '2017': '95', '2018':'99'}, {'name': 'B', '2015': 76, '2016':89, '2017': 83, '2018': 85}, {'name': 'C', '2015': 88, '2016':89, '2017': 91, '2018':91}]) df.set_index('name', i

我有一个更大的数据帧,类似于此格式:

df = pd.DataFrame([{'name': 'A', '2015': 99, '2016':98, '2017': '95', '2018':'99'}, {'name': 'B', '2015': 76, '2016':89, '2017': 83, '2018': 85}, {'name': 'C', '2015': 88, '2016':89, '2017': 91, '2018':91}])

df.set_index('name', inplace=True)

我想在2016年和2018年的多线图中绘制A、B和C。搜索了一段时间后,我似乎不知道如何从数据帧中绘制特定列。最佳实践是为每个情节创建一个新的吗

这里我假设年份是字符串,值是整数

Seaborn希望数据格式整洁,所以首先您可以转换数据帧

导入seaborn作为sns 作为pd进口熊猫 df=pd.DataFrame [ {姓名:A,2015:992016:982017:952018:99}, {姓名:B2015:762016:892017:832018:85}, {姓名:C,2015:882016:892017:912018:91}, ] df.set_indexname,inplace=True tidy=df.stack.reset_index.renamecolumns={level_1:year,0:values} 以下是结果

名称年份值 0 A 2015 99 1A 2016 98 2 A 2017 95 3 A 2018 99 4 B 2015 76 5 B 2016 89 6 B 2017 83 7 B 2018 85 8 C 2015 88 9 C 2016 89 10 C 2017 91 11 C 2018 91 那么,你可以

根据你想要的年份过滤它 将其作为数据参数传递 指定x、y和色调处的列 结果


这里我假设年份是字符串,值是整数

Seaborn希望数据格式整洁,所以首先您可以转换数据帧

导入seaborn作为sns 作为pd进口熊猫 df=pd.DataFrame [ {姓名:A,2015:992016:982017:952018:99}, {姓名:B2015:762016:892017:832018:85}, {姓名:C,2015:882016:892017:912018:91}, ] df.set_indexname,inplace=True tidy=df.stack.reset_index.renamecolumns={level_1:year,0:values} 以下是结果

名称年份值 0 A 2015 99 1A 2016 98 2 A 2017 95 3 A 2018 99 4 B 2015 76 5 B 2016 89 6 B 2017 83 7 B 2018 85 8 C 2015 88 9 C 2016 89 10 C 2017 91 11 C 2018 91 那么,你可以

根据你想要的年份过滤它 将其作为数据参数传递 指定x、y和色调处的列 结果


假设列和值中有数字数据,只需将dataframe熔化并调用线形图即可

sns.lineplot(data=df.melt(id_vars=['name']), 
             x='variable', y='value', hue='name')

假设列和值中有数字数据,只需将dataframe熔化并调用线形图即可

sns.lineplot(data=df.melt(id_vars=['name']), 
             x='variable', y='value', hue='name')

不,只是创建示例时出现了复制粘贴错误。感谢您指出,Fixed您想要x轴上的年份吗?是的,x轴将是年份,y轴将是这些年份的每个“名称”的值不,只是创建示例时的复制粘贴错误。谢谢你指出,Fixed你想要x轴上的年数?是的,x轴是年,y轴是这些年中每个“名称”的值