我正在绘制两个分布作为histplots,并希望可视化它们之间的差异。分布非常相似:
我用来生成其中一个图的代码如下所示:
sns.histplot(
data=dfs_downvoted_percentages["only_pro"],
ax=axes[0],
x="percentage_downvoted",
bins=30,
stat="percent",
)
我的主管建议绘制归一化分布之间的差异,基本上显示一个图从另一个图中减去。最终结果应该是一个图,其中一些箱低于0(如果图2中的箱大于图1中的箱)。因此,图之间的相似性被擦除,差异被突出显示。
1.这有道理吗?这些情节是一篇有望发表的论文的一部分;我以前没有见过这样的情节,但正如他解释的那样,这对我来说是有意义的。有没有更好的方法来形象化我想表达的东西?我已经有了另一个图,在那里我过滤掉了所有x=0的值,这样其他的值就变得更明显了。
1.有没有一个简单的方法来实现这一利用海运?
如果没有:我知道如何规范化数据并手工计算每个bin的百分比。但我找不到的是一种由箱子组成的图,它提供了有负箱子的可能性。我知道如何创建一个30个数据点的线图来显示计算出的差异,但我宁愿让它在视觉上类似于原始图,用bin而不是一条线。我能用什么样的情节来实现呢?
2条答案
按热度按时间imzjd6km1#
np.histogram
,它返回hist
和bin_edges
。bin_edges
。hist
,并将其与bin_edges
进行绘图。h_diff
绘制为条形图。bin_edge
比条形多一个,因此选择除了最后一个值bin_edges[:-1]
之外的所有值作为传递给x=
的x轴标签。sns.barplot
的x-tick是0索引的,因此用一个额外的tick重置tick,将它们偏移-0.5
,然后用所有的bin_edges
重新标记tick。byqmnocz2#
我认为你可以从彼此中减去2个dfs来做另一个直方图,或者你可以用不同的颜色代码将它们绘制在彼此的顶部,这样你就可以可视化差异。
举个例子: