首页 > 解决方案 > 将每个 Pandas Dataframe 行绘制为单独的图

问题描述

我在 CSV 文件中有几行数据存储。我想遍历每一行并将每一行绘制为单独的图。经过一些研究,看起来熊猫将是解决这个问题的方法。

这是为 Jupyter Notebook 准备的。我曾尝试直接读取 CSV 文件,但发现 pandas 更容易使用。但是,我只是从数据框中提取我的 y 值。我已经用我的 x 值定义了一个单独的 numpy 数组。

例如,我有:

 x_values = np.array([1, 2, 3, 4, 5, 6, 7, 8])
 my_data = pd.read_csv('example_data.csv') 

在我的数据中,我将第一列列为“位置”,范围从 1 到 20 英里。之后,我有 8 列填充了值。我想遍历可以为每个位置创建图表的每一行。因为我使用的是子图,我需要将迭代转换为 numpy 数组吗?不使用 pandas 只读取 CSV 文件会更好吗?

 fig, ax1 = plt.subplots(1,1, figsize=(4,3))
 ax1.plot (x_values, my_data) # would like this to loop for each row

我可以对数据框进行切片并手动创建我的图表,但是有 20 个位置,某种循环是理想的。我还阅读了 pandas 的强大功能,并想了解更多信息,以便获得使用它的经验,所以我更愿意坚持使用 pandas,但如果没有,任何帮助或指导将不胜感激。

标签: pythonpandasnumpymatplotlib

解决方案


您可以在绘图时转置:

df.T.plot()

或者当使用切片跳过第一列时:

df[1:].T.plot()

推荐阅读