python displot 图 算出96% 概率的 X值

img

Python displot 图 ,如何算出X值,然后X值画条竖线与曲线围成的左半边的面积是占所有面积的96%?

【以下回答由 GPT 生成】

要实现计算出曲线图中96%概率的X值,并在该位置画出一条竖线,可以按照以下步骤进行操作:

  1. 导入所需的库
import seaborn as sns
import matplotlib.pyplot as plt
import numpy as np
  1. 绘制直方图和曲线图
sns.displot(data=data_origin, x="Transit", col='Origin&P', kde=True)
  1. 计算总面积
total_area = np.trapz(sns.kdeplot(data_origin['Transit']).get_lines()[0].get_ydata(), 
                      sns.kdeplot(data_origin['Transit']).get_lines()[0].get_xdata())
  1. 遍历曲线上的每个点并计算左半边的面积,直到左半边面积占总面积的96%
x_values = sns.kdeplot(data_origin['Transit']).get_lines()[0].get_xdata()
y_values = sns.kdeplot(data_origin['Transit']).get_lines()[0].get_ydata()

left_area = 0
x = None
for i in range(len(x_values)):
    left_area += (y_values[i] + y_values[i-1]) / 2 * (x_values[i] - x_values[i-1])
    if left_area >= 0.96 * total_area:
        x = x_values[i]
        break
  1. 在图中绘制竖线
if x is not None:
    plt.axvline(x=x, color='r', linestyle='--')
  1. 显示图形
plt.show()

这样就能够在displot图中计算出96%概率的X值,并在相应位置画出一条竖线了。如果有任何问题,请随时问我。


如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^