我正在seaborn上绘制几个点图,并将它们绘制在同一张图上。x轴是有序的,而不是数值的;每个点图的有序值相同。我想将每个图稍微向一侧移动,就像在单个图内多行之间使用pointplot(dodge=...)参数一样,但这种情况针对多个不同的图绘制在彼此之上。我该怎么做?
理想情况下,我想要一种适用于任何matplotlib图的技术,而不仅仅是针对特定的seaborn。由于数据不是数值型的,所以难以直接添加数据偏移量。
例如,显示图重叠并使它们难以阅读(在每个图中进行闪避处理还可以)
理想情况下,我想要一种适用于任何matplotlib图的技术,而不仅仅是针对特定的seaborn。由于数据不是数值型的,所以难以直接添加数据偏移量。
例如,显示图重叠并使它们难以阅读(在每个图中进行闪避处理还可以)
import pandas as pd
import seaborn as sns
df1 = pd.DataFrame({'x':list('ffffssss'), 'y':[1,2,3,4,5,6,7,8], 'h':list('abababab')})
df2 = df1.copy()
df2['y'] = df2['y']+0.5
sns.pointplot(data=df1, x='x', y='y', hue='h', ci='sd', errwidth=2, capsize=0.05, dodge=0.1, markers='<')
sns.pointplot(data=df2, x='x', y='y', hue='h', ci='sd', errwidth=2, capsize=0.05, dodge=0.1, markers='>')
我可以使用其他工具而不是seaborn,但自动置信度/误差条非常方便,所以我更愿意在这里坚持使用seaborn。