我正在尝试使用 Seaborn 使我的情节在视觉上比 matplotlib 更好。我有一个数据集,其中有一列“年”,我想在 X 轴上绘制它,4 列在 Y 轴上使用不同的彩色线条表示 A、B、C、D。我试图使用 sns.lineplot 方法来做到这一点,但它只允许 X 轴上的一个变量和 Y 轴上的一个变量。我试过这样做
sns.lineplot(data_preproc['Year'],data_preproc['A'], err_style=None)
sns.lineplot(data_preproc['Year'],data_preproc['B'], err_style=None)
sns.lineplot(data_preproc['Year'],data_preproc['C'], err_style=None)
sns.lineplot(data_preproc['Year'],data_preproc['D'], err_style=None)
但是这样我就不会在情节中得到一个图例来显示哪条彩色线对应什么。我尝试查看文档,但找不到正确的方法来执行此操作。
原文由 SSPdude 发布,翻译遵循 CC BY-SA 4.0 许可协议
Seaborn 倾向于使用“长格式”作为输入。将 DataFrame 从其“宽格式”(每种测量类型一列)转换为长格式(一列用于所有测量值,一列用于指示类型)的关键要素是 pandas.melt 。给定一个
data_preproc
结构像你的,填充随机值:通过以下方式获得具有四条线的单个图,每种测量类型一条线
(请注意,’value’ 和 ‘variable’ 是
melt
返回的默认列名称,可以根据您的喜好进行调整。)