Использование matplotlib
Ключ должен был бы установить индекс для столбца номера испытания, чтобы оставшиеся столбцы содержали значения, которые должны быть нанесены на график.Затем фрейм данных может быть напрямую передан функции plot
в matplotlib.Небольшим недостатком является то, что легенда должна создаваться индивидуально.
import matplotlib.pyplot as plt
import pandas as pd
d = {"John":[43, 23, 12], "Mary":[24, 53, 32], "Trial_#":[1,2,3]}
df = pd.DataFrame(data=d)
df = df.set_index("Trial_#")
lines = plt.plot(df, marker="o")
plt.ylabel("Guess")
plt.legend(lines, df.columns)
plt.show()
![enter image description here](https://i.stack.imgur.com/a0Y2l.png)
Использование панд
Вы можете напрямую строить с помощью пандПреимущество которого заключается в бесплатной легенде.
import matplotlib.pyplot as plt
import pandas as pd
d = {"John":[43, 23, 12], "Mary":[24, 53, 32], "Trial_#":[1,2,3]}
df = pd.DataFrame(data=d)
ax = df.set_index("Trial_#").plot(marker="o")
ax.set(ylabel="Guess")
plt.show()
![enter image description here](https://i.stack.imgur.com/ye8Wy.png)
Использование Seaborn
Наиболее сложным решением являетсяс Сиборном.Seaborn работает с длинными формами данных.Чтобы преобразовать широкоформатный фрейм данных в длинный фрейм данных, вы можете использовать pandas.melt
.Результирующий длинный кадр затем содержит столбец с именами в нем;они могут использоваться как переменная hue
в морском заливе.
import matplotlib.pyplot as plt
import seaborn as sns
import pandas as pd
d = {"John":[43, 23, 12], "Mary":[24, 53, 32], "Trial_#":[1,2,3]}
df = pd.DataFrame(data=d)
dfm = pd.melt(df, id_vars=['Trial_#'], value_vars=['John', 'Mary'],
var_name="Name", value_name="Guess")
ax = sns.pointplot(x='Trial_#', y='Guess', hue="Name", data = dfm)
plt.show()
![enter image description here](https://i.stack.imgur.com/h6HtX.png)