matplotlib 海运线图图例未显示正确的线颜色-在一个图表上绘制两个Pandas系列

sg2wtvxw  于 2023-02-09  发布在  其他
关注(0)|答案(2)|浏览(111)

我正在尝试用Seaborn绘制两组数据,这是我的代码。

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

sns.axes_style("ticks")

ss_data = pd.read_csv('A.csv')
ks_data = pd.read_csv('B.csv')

g = sns.lineplot(data=ks_data, x="K", y="pd", dashes=False)
sns.lineplot(data=ss_data, x="K", y="pd", dashes=False)
g.set_xticks(range(0,22,4))
plt.legend(labels=["A", "B"])
plt.savefig("test.png", dpi=500)

但这是我得到的图,如你所见,图例没有正确显示B的线颜色。

我想这可能是由于我添加第二个线图的方式,但我不能使它工作的任何其他方式。

oxalkeyp

oxalkeyp1#

使用label参数(传递给matplotlib.axes.Axes.plot()),不需要plt.legend()

sns.lineplot(
    data=ks_data, x="K", y="pd", 
    label='A', errobar=None)
sns.lineplot(
    data=ss_data, x="K", y="pd", 
    label='B', errorbar=None)

重要的是,通过errorbar=None(或对于0.12.0之前的海运版本,ci=None),以关闭置信区间的绘制。

6rqinv9w

6rqinv9w2#

可能是matplotlib/seaborn版本问题?我无法重现您的图表。使用一些虚拟数据,我得到了预期的结果:

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

sns.axes_style("ticks")

data1 = {"K":[1,5,10,15,20], "pd":[2,10,20,30,40]}
data2 = {"K":[1,5,10,15,20], "pd":[1.5,9,18,16,35]}

ss_data = pd.DataFrame(data=data1)
ks_data = pd.DataFrame(data=data2)

g = sns.lineplot(data=ks_data, x="K", y="pd", dashes=False)
sns.lineplot(data=ss_data, x="K", y="pd", dashes=False)
g.set_xticks(range(0,22,4))
plt.legend(labels=["A", "B"])

我有两个

相关问题