pandas 从多个列绘制图形时的列表理解

jm81lzqq  于 2022-11-20  发布在  其他
关注(0)|答案(1)|浏览(179)

我正在尝试从多个列绘制折线图

ax = sns.lineplot(data=mt, 
                  x= ['pt'],
                  y = [c for c in mt.columns if c not in ['pt']],
                  dashes=False)

我得到的回应是

ValueError: Length of list vectors must match length of `data` when both are used, but `data` has length 13 and the vector passed to `x` has length 1.
kqqjbcuj

kqqjbcuj1#

Seborn的偏好长格式的数据,可以通过pd.melt()创建。如果创建索引,则支持宽格式的 Dataframe (数据不太复杂)。
下面是一个简单的例子:

import matplotlib.pyplot as plt
import seaborn as sns
import numpy as np
import pandas as pd

mt = pd.DataFrame({'pt': np.arange(100),
                   'y1': np.random.randn(100).cumsum(),
                   'y2': np.random.randn(100).cumsum(),
                   'y3': np.random.randn(100).cumsum()})
sns.set()
ax = sns.lineplot(data=mt.set_index('pt'), dashes=True)
plt.tight_layout()
plt.show()

相关问题