回答问题

是否可以在 Python 中制作Bland-Altman 图?我似乎找不到任何关于它的信息。

此类图的另一个名称是_Tukey 均值差图_。

例子:

在此处输入图像描述

Answers

如果我正确理解了绘图背后的理论,则此代码应提供基本绘图,而您可以根据自己的特定需求对其进行配置。

import matplotlib.pyplot as plt
import numpy as np

def bland_altman_plot(data1, data2, *args, **kwargs):
    data1     = np.asarray(data1)
    data2     = np.asarray(data2)
    mean      = np.mean([data1, data2], axis=0)
    diff      = data1 - data2                   # Difference between data1 and data2
    md        = np.mean(diff)                   # Mean of the difference
    sd        = np.std(diff, axis=0)            # Standard deviation of the difference

    plt.scatter(mean, diff, *args, **kwargs)
    plt.axhline(md,           color='gray', linestyle='--')
    plt.axhline(md + 1.96*sd, color='gray', linestyle='--')
    plt.axhline(md - 1.96*sd, color='gray', linestyle='--')

data1data2中的对应元素用于计算绘制点的坐标。

然后你可以通过运行例如创建一个情节。

from numpy.random import random

bland_altman_plot(random(10), random(10))
plt.title('Bland-Altman Plot')
plt.show()

Bland-Altman 情节

Logo

Python社区为您提供最前沿的新闻资讯和知识内容

更多推荐