如何批量绘制pandas DataFrame的所有行(非列)
绘制Pandas DataFrame的所有行(而非列)
没问题,这事儿其实很好解决——核心就是把你的DataFrame转置一下,因为Pandas默认的plot()方法是按列绘制曲线的,转置后原来的行就变成了列,刚好匹配你的需求!
方法一:转置DataFrame后直接绘制(推荐)
这种方法最简洁高效,不管你有多少行(哪怕200行)都能一次性处理,完全不用手动指定行:
import pandas as pd import matplotlib.pyplot as plt # 假设你的DataFrame是df df = pd.DataFrame(...) # 替换成你的实际数据 # 转置后绘制,原DataFrame的每一行都会变成一条独立曲线 df.T.plot() plt.show()
转置的逻辑很直观:df.T会把原DataFrame的行和列互换,原DataFrame的每一行就成了新DataFrame的一列,而Pandas的plot()默认就是为每一列生成一条曲线,完美解决你“画所有行”的需求。
方法二:循环遍历每一行绘制(适合自定义场景)
如果你需要对每一行的绘制做更细致的控制(比如自定义行标签),也可以用循环遍历每一行:
import pandas as pd import matplotlib.pyplot as plt df = pd.DataFrame(...) # 替换成你的实际数据 # 遍历每一行并逐一绘制 for row_idx, row_data in df.iterrows(): # row_data.index是原DataFrame的列名(作为x轴),row_data.values是该行的数值 plt.plot(row_data.index, row_data.values, label=f'Row {row_idx}') # 可选:添加图例区分不同行 plt.legend() plt.show()
这个方法虽然代码多一点,但灵活性更高,适合需要额外定制的场景。
两种方法都能适配任意行数的DataFrame,完全不用担心行数变化的问题,也不需要手动设置颜色(Matplotlib会自动为不同曲线分配区分度足够的颜色)。
内容的提问来源于stack exchange,提问作者ahajib
相关产品推荐
相关产品推荐

