Seaborn:如何将垂直线添加到分布图(sns.distplot)

2024-05-29 11:36:39 发布

您现在位置:Python中文网/ 问答频道 /正文

使用来自seaborn.pydata.orgPython DataScience Handbook的示例,我能够生成具有以下代码段的组合分布图:

代码:

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

# some settings
sns.set_style("darkgrid")

# Create some data
data = np.random.multivariate_normal([0, 0], [[5, 2], [2, 2]], size=2000)
data = pd.DataFrame(data, columns=['x', 'y'])

# Combined distributionplot
sns.distplot(data['x'])
sns.distplot(data['y'])

绘图:enter image description here

如何将此设置与垂直线相结合,以便演示如下阈值:

enter image description here

我知道我可以用matplotlib来完成,就像这里Dynamic histogram subplots with line to mark target,但我真的很喜欢seaborn绘图的简单性,并且想知道是否可以更优雅地完成它(是的,我知道seaborn构建在matplotlib之上)

谢谢你的建议


Tags: orgimport绘图datamatplotlibasnpsome
1条回答
网友
1楼 · 发布于 2024-05-29 11:36:39

只用

plt.axvline(2.8, 0,0.17)

另一行也一样

在这里,您可以使用一些变量(如maxx = max(data)或类似的变量)来代替0.17,来放置分布的最大值。2.8是x轴上的位置。哦,记住y值必须在0和1之间,其中1是绘图的顶部。可以相应地重新缩放值。另一个显而易见的选择是

plt.plot([2.8, 2.8], [0, max(data)])

相关问题 更多 >

    热门问题