簡體   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