Pandas结合Matplotlib如何绘制指定单行坐标并连接点位
解决方案
1. 绘制指定单行数据
不需要修改原始Excel文件,直接用pandas的位置索引方法.iloc[]筛选目标行即可,传入的行号和你数据集预览时最左侧的数字序号(从0开始计数)对应,不需要把整个DataFrame传入绘图方法。
2. 同一行坐标点连线
提取单行内两个点位的x、y坐标,将两点的x值、y值分别组合为序列,调用Matplotlib的plot()方法即可在两点之间绘制线段,线段样式、颜色可以按需自定义。
可直接运行的参考代码
import pandas as pd import numpy as np import matplotlib.pyplot as plt # 读取原始数据,全程不会修改原Excel文件 df = pd.read_excel("E:\\Clark\\Flow Tank\\Respirometry\\Cropped_videos\\F1\\MG\\F1_MG_4Hz_simplified.xlsx") # 要绘制的目标行索引,修改这个值即可切换要绘制的行 target_row_idx = 2 # 提取目标行的所有坐标数据 row = df.iloc[target_row_idx] # 创建绘图画布 fig, ax = plt.subplots() # 绘制单行的两个坐标散点 ax.scatter(row['xsnout'], row['ysnout'], color='r', label='snout') ax.scatter(row['xMLA'], row['yMLA'], color='g', label='MLA') # 绘制两个点之间的连接线段 ax.plot( [row['xsnout'], row['xMLA']], [row['ysnout'], row['yMLA']], color='gray', linewidth=1 ) ax.legend() plt.show()
扩展说明
如果需要同时绘制多个指定行,只需要给.iloc[]传入行索引列表即可,例如df.iloc[[0, 3, 5]]会筛选出第0、3、5行,遍历筛选结果逐行执行散点和连线的绘制逻辑即可。
内容的提问来源于stack exchange,提问作者UFWh3202
相关产品推荐
相关产品推荐

