首页 > 解决方案 > 使用 pandas 和 matplotlib 分别保存每个子图

问题描述

我想为 pandas 数据框中的每一行制作一个折线图,并将其保存为文件名是该行的第一个单元格的名称。我已经取得了一些进展,但我不得不切换我的列和行,这并不理想。

我的尝试:

import seaborn as sns
import pandas as pd
import matplotlib.pyplot as plt

df = pd.read_csv("data/line_graph_c.csv", sep=';')
f = pd.DataFrame(data)
df.Date = pd.to_datetime(df.Date)
df.set_index('Date', inplace=True)
dfs = df.stack().reset_index().rename(columns={'level_1': 'field_name', 0: 'crop_health'})
sns.relplot(data=df_select, x='Date', y='crop_health', col='field_name', col_wrap=2, kind='line')

数据如下

Date            a   b   c   d
0   2021/01/05  1   2   3   4
1   2021/01/06  4   3   2   1
2   2021/01/07  5   6   7   8
3   2021/01/08  8   7   6   5

理想的情况是从以下数据中为每一行制作一个折线图:


    date       2021/01/05   2021/01/06  2021/01/07  2021/01/08
0   field_name NaN          NaN         NaN         NaN
1   a          1.0          2.0         3.0         4.0
2   b          4.0          3.0         2.0         1.0
3   c          5.0          6.0         7.0         8.0
4   d          8.0          7.0         6.0         5.0

并以字段名称作为图像名称单独保存每个折线图。

任何帮助将不胜感激

标签: pythonpandasdataframematplotliblinegraph

解决方案


推荐阅读