【问题标题】:Plotting histogram including mean, variance and quartiles绘制直方图,包括均值、方差和四分位数
【发布时间】:2021-10-17 10:00:02
【问题描述】:

我想计算和显示直方图,并绘制均值、方差和四分位数。我不知道该怎么做。编码不是我的强项,而绘图是最糟糕的。

我计算了概率、均值、var、四分位数。我还绘制了概率和 pdf 曲线,这对于 seaborn (this helped me out a bit) 来说很简单。

到目前为止这实际上是正确的吗?如何在图中添加均值、变量和四分位数?

import seaborn as sns
import numpy as np
import math
import statistics

# calculating probabilities
i = 1
probability = []
for i in range(100):
    probability.append((61/99) * math.e**(-0.5 * i) + (38/99) * math.e**(-0.25 * i))

mean = sum(probability)/float(len(probability))
variance = statistics.variance(probability)
q25 = np.quantile(probability, 0.25)
q50 = np.quantile(probability, 0.5)
q75 = np.quantile(probability, 0.75)

sns.displot(probability, bins=100, kde=True);

提前致谢:)

【问题讨论】:

  • 你已经标记了所有的绘图库——你想要哪一个?
  • 我没有偏好,因为我对它们都不熟悉。我在我的代码中使用了 seaborn,因为这是我设法做到的。

标签: python plotly


【解决方案1】:
  • 使用 plotly 可以构建频率直方图
  • 在第二个 y 轴上为 方差、平均值、q25、q50、q75 添加线条
import numpy as np
import math
import statistics
import pandas as pd
import plotly.express as px


# calculating probabilities
i = 1
probability = []
for i in range(100):
    probability.append(
        (61 / 99) * math.e ** (-0.5 * i) + (38 / 99) * math.e ** (-0.25 * i)
    )

mean = sum(probability) / float(len(probability))
variance = statistics.variance(probability)
q25 = np.quantile(probability, 0.25)
q50 = np.quantile(probability, 0.5)
q75 = np.quantile(probability, 0.75)

fig = px.histogram(probability, nbins=100).update_traces(name="frequency")

fig.add_traces(
    px.line(
        pd.DataFrame(index=np.linspace(0, 1, 100)).assign(
            mean=mean, variance=variance, q25=q25, q50=q50, q75=q75
        )
    )
    .update_traces(yaxis="y2")
    .data
).update_layout(
    yaxis2={"side": "right", "anchor": "x", "overlaying": "y"},
    legend=dict(
        orientation="h", yanchor="bottom", y=1.02, xanchor="right", title_text="", x=1
    ),
)

fig.show()

【讨论】:

  • 这看起来很棒,谢谢!有没有办法在直方图上添加概率密度图?这就是我喜欢 seaborn 代码行所做的事情。
猜你喜欢
  • 1970-01-01
  • 2019-10-02
  • 2016-08-22
  • 2015-01-22
  • 1970-01-01
  • 2014-01-07
  • 2021-12-11
  • 2018-09-16
  • 1970-01-01
相关资源
最近更新 更多