Знаете ли вы, как я могу отображать фреймы с несколькими данными в python одновременно в oop, теперь мне нужно повторить ту же структуру, но очень неэффективно, если у меня n фреймы данных? ...
df_0.plot(kind='line',y='AB',ax=ax)
df_1.plot(kind='line',y='AB',ax=ax)
df_2.plot(kind='line',y='AB',ax=ax)
plt.legend(['sim 1', 'sim 2', 'sim 3'], loc= 0)
plt.show()
..
.
(...)
The code that I create is this:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
def t(i):
global a, b, c
if i == 0:
a = pd.DataFrame(np.random.randint(low=0, high=10, size=(2, 2)), columns=['a', 'b'])
return a
elif i == 1:
b = pd.DataFrame(np.random.randint(low=0, high=10, size=(2, 2)), columns=['a', 'b'])
return b
else:
c = pd.DataFrame(np.random.randint(low=0, high=10, size=(2, 2)), columns=['a', 'b'])
return c
dfnames = ['df0', 'df1', 'df2']
for x in dfnames: exec(x + ' = t(x)', globals()) # generate multiple dataframes and assign the names globaly
#to plot
ax = plt.gca()
df0.plot(kind='line',x='b',y='a', color='red', ax=ax)
df1.plot(kind='line',x='b',y='a', color='green', ax=ax)
df2.plot(kind='line',x='b',y='a', color='blue', ax=ax)
plt.show()
Я пытаюсь это исправить, используя al oop, но python возвращает мне эту ошибку, как я могу это сделать?
a = plt.gca()
for w in dfnames:
w.plot(x='a', y='b', kind='line', ax=a)
plt.show()
Traceback (most recent call last):
File "...py", line 67, in <module>
w.plot(x='a', y='b', kind='line')
AttributeError: 'str' object has no attribute 'plot'
Большое спасибо за вашу удивительную помощь!