繁体   English   中英

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

[英]Seaborn: How to add vertical lines to a distribution plot (sns.distplot)

使用来自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'])

阴谋: 在此处输入图片说明

我如何将这个设置与垂直线结合起来,以便我可以说明这样的阈值:

在此处输入图片说明

我知道我可以用 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 是图的顶部。 您可以相应地重新调整您的值。 另一个明显的选择是

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM