Plotly v5.3.1 组合计数直方图和 KDE 曲线

Plotly v5.3.1 combined count histogram and KDE curve

我目前有这个代码:

import dash_core_components as dcc #dash version 2.0.0
import plotly.figure_factory as ff #plotly version 5.3.1

...dash app code

dcc.Graph(id = 'rug_plot_count_region_biosynthetic_protein_homologs',
          figure = ff.create_distplot([filtered_df['count_region_biosynthetic_protein_homologs'].tolist()], 
                                      group_labels = ['count_region_biosynthetic_protein_homologs'])),

...more dash app code

作为 dash 应用程序的一部分制作此图的原因:

我想要两个 y 轴,一个显示 KDE 曲线的概率密度(这是已经存在的 y 轴),另一个显示计数频率。然后我希望将 KDE 曲线链接到 KDE y 轴,将直方图链接到计数 y 轴。

有没有办法使用 plotly 来做到这一点?

  • 您可以将直方图或正态分布替换为标准直方图
  • 在融入 dash
  • 之前专注于构建图形
  • 找不到您的域的任何示例数据,因此使用了随机
import plotly.figure_factory as ff
import plotly.express as px
import numpy as np
import pandas as pd

np.random.seed(1)

filtered_df = pd.DataFrame({"count_region_biosynthetic_protein_homologs": np.random.randn(1000)})

fig = ff.create_distplot(
    [filtered_df["count_region_biosynthetic_protein_homologs"].tolist()],
    group_labels=["count_region_biosynthetic_protein_homologs"],
    show_hist=False,
).add_traces(
    px.histogram(filtered_df, x="count_region_biosynthetic_protein_homologs")
    .update_traces(yaxis="y3", name="histogram")
    .data
).update_layout(yaxis3={"overlaying": "y", "side": "right"}, showlegend=False)

fig