Seaborn图表收敛于同一点不可见

时间:2019-02-27 23:05:47

标签: python jupyter-notebook seaborn

我有一个包含两列的数据框-VOL,INVOL,并且对于特定年份,值是相同的。因此,在绘制seaborn时,当它们收敛时,我看不到另一列的值。

例如: 我的数据框是

Dataframe

当我使用seaborn时,请使用以下代码

f5_test = df5_test.melt('FY', var_name='cols',  value_name='vals')

g = sns.catplot(x="FY", y="vals", hue='cols', data=df5_test, kind='point')

该图表未显示0.06的同一点。

我尝试使用熊猫绘图,结果相同。enter image description here

请告知我该怎么办。预先感谢。

1 个答案:

答案 0 :(得分:1)

您的情节看起来合法。由于2016年至2018年的数据完全相同,因此两条线完全重叠。我认为也许您可以尝试分别绘制两条线,并向其中一条线添加或减去一些小值,以使线稍微移动一点。例如:

import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
df = pd.DataFrame({'FY': [2012, 2013, 2014, 2015, 2016, 2017, 2018],
                   'VOL_PCT': [0, 0.08, 0.07, 0.06, 0, 0, 0.06],
                   'INVOL_PC': [0, 0, 0, 0, 0, 0, 0.06]})
# plot
fig, ax = plt.subplots()
sns.lineplot(df.FY, df.VOL_PCT)
sns.lineplot(df.FY+.01, df.INVOL_PC-.001)

enter image description here

此外,给定数据类型,您还可以考虑使用堆栈图。例如:

fig, ax = plt.subplots()
labels = ['VOL_PCT', 'INVOL_PC']
ax.stackplot(df.FY, df.VOL_PCT, df.INVOL_PC, labels=labels)
ax.legend(loc='upper left');

enter image description here

参考Stackplot