我有一个包含两列的数据框-VOL,INVOL,并且对于特定年份,值是相同的。因此,在绘制seaborn时,当它们收敛时,我看不到另一列的值。
例如:
我的数据框是
当我使用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的同一点。
我尝试使用熊猫绘图,结果相同。
请告知我该怎么办。提前致谢。
最佳答案
您的情节看起来合法。由于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)
另外,给定数据类型,您还可以考虑使用堆栈图。例如:
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');
参考Stackplot
关于python - Seaborn图表收敛于同一点不可见,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54915913/