matplotlib 如何向分布图添加垂直线

mm5n2pyu  于 2023-04-06  发布在  其他
关注(0)|答案(1)|浏览(153)

使用来自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来做,就像这里动态直方图子图,用线来标记目标,但我真的很喜欢seaborn图的简单性,想知道是否有可能更优雅地完成它(是的,我知道seaborn构建在matplotlib之上)。

9lowa7mx

9lowa7mx1#

就用

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)])

相关问题