如何基于多列DataFrame绘制实验室测量数据的散点图?
绘制DataFrame实验室测量数据的散点图方案
你想要把这份每日实验室测量值做成散点图对吧?先再确认下你的数据:
print(df)
day val1 val2 val3
1 1 9.26875 11.34072 11.26673
2 2 48.47862 48.35817 48.68534
3 3 140.17682 141.09102 142.95175
4 4 313.43012 313.69816 312.97293
下面给你两种实用的实现方法,都是Python里常用的工具包,你可以直接套用:
方法一:用Matplotlib手动绘制
Matplotlib是最基础的绘图库,灵活性很高,步骤也很清晰:
首先导入需要的库:
import pandas as pd import matplotlib.pyplot as plt
然后针对每个测量指标分别绘制散点,用不同颜色区分,还能加图例方便识别:
# 假设你的df已经加载完成(比如从csv读取或者直接定义) plt.figure(figsize=(8, 6)) # 设置图形大小 # 逐个绘制三个测量值的散点 plt.scatter(df['day'], df['val1'], color='cornflowerblue', label='val1', s=60) plt.scatter(df['day'], df['val2'], color='tomato', label='val2', s=60) plt.scatter(df['day'], df['val3'], color='limegreen', label='val3', s=60) # 添加必要的标注 plt.title('每日实验室测量值散点图', fontsize=14, pad=15) plt.xlabel('日期(day)', fontsize=12) plt.ylabel('测量值', fontsize=12) # 显示图例 plt.legend(fontsize=10) # 展示图形 plt.show()
方法二:用Seaborn快速绘制(更简洁)
Seaborn适合处理多列数据的可视化,只需要先把数据转换成长格式,就能一键生成分类散点图:
先导入库:
import pandas as pd import seaborn as sns import matplotlib.pyplot as plt
转换数据格式并绘图:
# 把宽格式的df转成长格式,方便Seaborn识别分类 df_long = df.melt(id_vars='day', var_name='测量指标', value_name='数值') plt.figure(figsize=(8, 6)) # 自动按"测量指标"区分颜色,绘制散点 sns.scatterplot(data=df_long, x='day', y='数值', hue='测量指标', palette=['cornflowerblue', 'tomato', 'limegreen'], s=60) # 添加标注 plt.title('每日实验室测量值散点图', fontsize=14, pad=15) plt.xlabel('日期(day)', fontsize=12) plt.ylabel('测量值', fontsize=12) plt.show()
这两种方法都能帮你清晰展示每天三个测量值的分布和变化趋势,你可以根据自己的习惯选择。如果需要调整点的大小、颜色或者图形样式,直接修改对应的参数就行~
内容的提问来源于stack exchange,提问作者John C. Dough
相关产品推荐
相关产品推荐

