Python - 将新曲线从 df 添加到现有线图中

Python - Add new curve from a df into existing lineplot

我根据 DafaFrame.

使用 sns 创建了一个图

现在,我想在先前创建的图上添加来自另一个数据框的新曲线。

这是我的剧情代码:

tline = sns.lineplot(x='reads', y='time', data=df, hue='method', style='method', markers=True, dashes=False, ax=axs[0, 0])
tline.set_xlabel('Numero di reads')
tline.set_ylabel ('Time [s]')
tline.legend(loc='lower right')
tline.set_yscale('log')
tline.autoscale(enable=True, axis='x')
tline.autoscale(enable=True, axis='y')

现在我有另一个 Dataframe 与第一个 DataFrame 相同的列。如何在图例中添加带有自定义条目的新曲线?

这是DataFrame的结构:

Dataset Method Reads Time Peak-memory
14M Set 14000000 7.33 1035204
20K Set 200000 0.38 107464
200K Set 20000 0.07 42936
2M Set 28428648 16.09 2347740
28M Set 2000000 1.41 240240

我建议像这样使用 matplotlibs OOP interface

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


# generate sample data
time_column = np.arange(10)
data_column1 = np.random.randint(0, 10, 10)
data_column2 = np.random.randint(0, 10, 10)

# store in pandas dfs
df1 = pd.DataFrame(zip(time_column, data_column1), columns=['Time', 'Data'])
df2 = pd.DataFrame(zip(time_column, data_column2), columns=['Time', 'Data'])

f, ax = plt.subplots()

sns.lineplot(df1.Time, df1.Data, label='foo', ax=ax)
sns.lineplot(df2.Time, df2.Data, label='bar', ax=ax)

ax.legend()

plt.show()

生成以下输出

重要的是两个线图都在同一个子图中(在本例中为 ax)。