Python 为每行数据绘制一条单独的线

Python plot a separate line for each line of data

我正在尝试使用 matplotlib 和 pandas 从 csv 中绘制图表,结构如下:

总共有 36 种可能的状态,我希望每一种状态都有一行。有 100 次迭代。迭代将从0开始,每次递增1。每个状态都会有每 i 次迭代的记录。这些线以迭代为 x 轴,效用为 y 轴绘制,如下所示。

我已经从 csv 文件中创建了一个数据框,但这是我所能得到的。

value_headers = ['State', 'Iteration', 'Utility']
value_df = pd.read_csv('example.csv', names = value_headers, index_col='State')

编辑Here is the dict of my dataframe

在过去的一个小时里,我一直在为此绞尽脑汁,但无济于事。我什至不知道如何用简洁的句子来描述这个问题以进行故障排除。另外,我无法在 Whosebug 上找到与我类似的问题。任何建议将不胜感激。

如果我正确阅读了你的 DataFrame,你需要弄清楚给定的状态标识符何时出现在你的 csv 的第一列中,然后将这些值一起使用来绘制图表。 根据您使用单个值 Iteration 的示例,我建议如下(假设您的 DataFrame 称为 df

import matplotlib.pyplot as plt
import pandas as pd

fig, ax = plt.subplots()

df = df.iloc[1:,:]
df = df.reset_index()
# the state identifier is now a column with the header 'index'
for idx in df['index'].unique():
    subset = df[df['index']==idx]
    ax.plot(subset['Iteration'], subset['Utility'])
plt.show()