簡體   English   中英

我可以將 vline 和 hline 添加到 plotly plot 忽略邊緣圖嗎?

[英]Can I add a vline and hline to a plotly plot ignoring marginal plots?

我正在將可視化從 seaborn 庫移動到 plotly 庫。 我想要一個帶有 x 和 y 變量邊緣直方圖的散點圖。 我想為我的 x 和 y 變量的平均值顯示一條垂直線和水平線。

為了顯示我的問題,我創建了一個隨機 X 和 Y 值的虛擬 dataframe

import pandas as pd
import numpy as np
import seaborn as sns
import plotly.express as px

df = pd.DataFrame(np.random.randint(0,100,size=(100, 2)), columns=list('XY'))

我想在 plotly 上復制 seaborn 庫 output。

g = sns.JointGrid(data=df, x="X", y="Y")
g.plot(sns.scatterplot, sns.histplot)
g.refline(x=df.X.mean(), y=df.Y.mean())

plt.show()

海底情節

當我使用add_lineadd_hline在 plotly 上做類似的事情時,我得到以下信息:

df = pd.DataFrame(np.random.randint(0,100,size=(100, 2)), columns=list('XY'))
fig = px.scatter(df, x='X', y='Y',
                marginal_y="histogram", marginal_x="histogram",
                width=800, height=600)
fig.add_hline(y=df['X'].mean(), line_dash='dash', annotation_text= f"{df['X'].mean():.0f}")
fig.add_vline(x=df['Y'].mean(), line_dash='dash', annotation_text=f"{df['Y'].mean():.0f}")

fig.show()

密謀

我的問題是水平線也繪制在邊緣 x plot 上,垂直線也繪制在邊緣 y plot 上。有沒有辦法防止水平線繪制在邊緣 x plot 和垂直線上繪制在邊緣 y plot 上?

您可以在繪制 hline/vline 時定義面板網格的行和列:

fig.add_hline(y=df['X'].mean(), line_dash='dash', row=1, annotation_text= f"{df['X'].mean():.0f}")
fig.add_vline(x=df['Y'].mean(), line_dash='dash', col=1, annotation_text=f"{df['Y'].mean():.0f}")

樣本 output: 在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM