Pandas DataFrame Plot: списки значений - PullRequest
0 голосов
/ 06 марта 2019

У меня есть Pandas DataFrame, который напоминает:

pd.DataFrame({
    'el1': {
        'steps': [0,1,2], 
        'values': [10, 9, 8]
    },
    'el2': {
        'steps': [0,1,2], 
        'values': [1,  2, 8]
    },
    'el3': {
        'steps': [0,1,2], 
        'values': [5,  9, 4]
    }
})

        el1         el2         el3
steps   [0, 1, 2]   [0, 1, 2]   [0, 1, 2]
values  [10, 9, 8]  [1, 2, 8]   [5, 9, 4]

, что было бы лучшим способом попробовать использовать график Panda DataFrame, чтобы получить несколько простых линейных графиков с values на y ось и steps на оси x?(например, должно быть три строки)

Ответы [ 2 ]

1 голос
/ 06 марта 2019

Вот другая конструкция. Во многом потому, что мне удобнее с преобразованием базового фрейма данных перед построением графика. График графика почти такой же, поэтому кредиты идут на @meW за строки кода.

import pandas as pd
import matplotlib.pyplot as plt


df = pd.DataFrame({
    'el1': {
        'steps': [0,1,2], 
        'values': [10, 9, 8]
    },
    'el2': {
        'steps': [0,1,2], 
        'values': [1,  2, 8]
    },
    'el3': {
        'steps': [0,1,2], 
        'values': [5,  9, 4]
    }
})

ndf = pd.DataFrame({v:df[v].values[1] for v in df.columns})
ndf.index = df.el1.steps
ndf.columns = df.columns

>>>ndf
   el1  el2  el3
0   10    1    5
1    9    2    9
2    8    8    4

plt.plot(ndf)
plt.legend(ndf.columns)
plt.xlabel('Steps')
plt.ylabel('Values')
plt.show()
1 голос
/ 06 марта 2019

Использование matplotlib

c = ['r', 'g', 'b']
for i in range(df.shape[1]):
    plt.plot(df.iloc[0, i], df.iloc[1, i], c=c[i], label=df.columns[i])
plt.legend(df.columns)
plt.xlabel('Steps')
plt.ylabel('Values')
plt.show()

plt

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...