在现代医学中,数据驱动的决策变得愈发重要。雷达图 (Radar Chart),也被称为蜘蛛图 (Spider Chart)或星形图(Star Plot),是一种有效的可视化工具,能够直观地展示多维数据的关系和相对大小。以下是使用雷达图展示病人健康指标的示例。
0 1 环境准备
在开始之前,请确保您的环境中已安装 NumPy, Pandas 和 Matplotlib 库。这些库是数据科学和可视化的基石。若您尚未安装,可以通过以下命令进行安装:
bash
pip install numpy matplotlib pandas
02 代码示例
接下来,我们将通过一个完整的代码示例,展示如何绘制雷达图:
python
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
# 设置数据
df = pd.DataFrame({
'Patient': ['P_A', 'P_B', 'P_C'], # 病人数据
'Glucose': [5.6, 7.2, 8.5], # 血糖(mmol/L)
'Blood Pressure': [120, 130, 125], # 血压(mmHg)
'Cholesterol': [180, 150, 190], # 胆固醇(mg/dL)
'BMI': [32.0, 27.5, 20.0], # 体重指数(kg/m²)
'Heart Rate': [72, 100, 78] # 心率(bpm)
})
# 获取变量列表
categories = list(df.columns[1:]) # 提取指标名称
N = len(categories) # 变量数量
# 创建雷达图
fig, ax = plt.subplots(figsize=(8, 8), subplot_kw=dict(polar=True)) # 初始化极坐标图
# 设置颜色
colors = ['#1f77b4', '#ff7f0e', '#2ca02c'] # 定义每个病人的颜色
# 绘制每个病人的数据
for i in range(len(df)):
values = df.loc[i].drop('Patient').values.flatten().tolist() # 提取病人的数据
values += values[:1] # 闭合雷达图,重复第一个值
angles = [n / float(N) * 2 * np.pi for n in range(N)] # 计算每个变量的角度
angles += angles[:1] # 闭合雷达图,重复第一个角度
ax.plot(angles, values, linewidth=2, linestyle='solid', label=df.loc[i, 'Patient'], color=colors[i]) # 绘制数据
ax.fill(angles, values, color=colors[i], alpha=0.25) # 填充区域,增加可视化效果
# 设置标签和标题
plt.xticks(angles[:-1], categories, color='black', size=12) # 设置坐标轴标签
ax.set_rlabel_position(0) # 设置 y 轴标签位置
plt.yticks(np.arange(0, 200, 40), color="grey", size=8) # 设置 y 轴刻度
plt.ylim(0, 200) # 设置 y 轴范围
# 添加网格
ax.yaxis.grid(color='grey', linestyle='--', linewidth=0.5) # y 轴网格
ax.xaxis.grid(color='grey', linestyle='--', linewidth=0.5) # x 轴网格
# 添加标题和图例
plt.title('Patient Health Metrics Radar Chart', size=22, color='black', fontweight='bold') # 设置图表标题
plt.legend(loc='upper right', bbox_to_anchor=(1.1, 1.1)) # 添加图例
# 显示图形
plt.tight_layout() # 调整布局
plt.show() # 显示图形
03 数据解读
在图中,您可以清晰地看到每位病人在各个健康指标上的表现。例如,P_A 在BMI 和心率 上表现较高,而P_B 在血糖 和胆固醇方面则相对较低。这种直观的比较方式使得医疗专业人员能够快速评估病人的健康状况,并制定相应的医疗方案。
0 4 注意事项
虽然雷达图能够有效展示多维数据,但在数据量较大或维度过多时,图表可能会显得复杂。因此,建议在使用雷达图时,结合其他可视化工具进行全面分析,以确保数据的准确解读。
★参考文献
Python 语言可视化科技图标绘制。
Python 语言科研绘图与学术图表绘制。
++希望这篇文章能为您在数据分析和可视化的旅程中提供帮助。如果您有任何问题或想要进一步探讨的主题,请在评论区留言。感谢您的阅读,我们下期再见!++