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

标签 python matplotlib plot seaborn

使用 seaborn.pydata.org 中的示例和 Python 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 之上)。

感谢您的任何建议!

最佳答案

就用

plt.axvline(2.8, 0,0.17)

另一行也一样

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

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

关于python - Seaborn:如何将垂直线添加到分布图 (sns.distplot),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52334938/

相关文章:

python - 将变量附加到列表以创建 10 个矩形

r - 用户在 r 中拥有 pch(剪辑)

python - 在 Python 中生成、填充和绘制六边形格子

python - django 中关系的平均值

python - 按键对字典进行排序,然后对与每个键相关的值列表进行排序并输出到 CSV 文件?

python - 在 python 中格式化文本文件

python - 如何屏蔽线以下的点?

python - 如何在 Python/Jupyter 笔记本中省略 matplotlib 打印输出?

python - 使用 matplotlib basemap 绘制 GDAL 栅格

c# - 如何在 winform 应用程序中绘制 matlab 图?