Данные, которые у меня есть, представляют собой список фреймов данных с такими же столбцами, которые были предоставлены из интересующих файлов, введенных пользователем. Столбцы данных и пользовательские входные данные передаются в параметры __init__ для создания экземпляра. Некоторые атрибуты экземпляров являются списками, которые я хотел бы построить, когда они создаются в цикле.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
class Sample():
def __init__(self,initname,initlistA,initlistB,...):
self.name = initname
self.nums_a = initlistA
'''There are more but are unnecessary to show'''
def func(self,listA,scalar_A = 30 ,scalar_B = 10) :
x = stats.binned_statistic(self.nums,self.nums,statistic = 'count', bins = scalar_A, range[0,scalar_B]):
self.right_bins = x[1][1:]
self.y_values = x[0]
fig,axs = plt.subplots()
axs.set_xlabel('str')
axs.set_ylabel('str_2')
#axs.set_ylim(bottom = 0)
#axs.set_xlim(left = 0)
lst_of_dfs = []
files = []
while True:
fname = input('file.xlsx')
if fname =='Done' :break
else:
file=pd.read_excel(fname)
lst_of_dfs.append(file)
files.append(fname)
for x in range(0,len(lst_of_dfs)):
name = files[x]
df = lst_of_dfs[x]
sample = Sample(input('name for {}'.format(name),df['initlistA'],....)
sample.fun()
axs.plot(self.right_bins,self.y_values,marker = 'x', label = self.name)
print(self.y_values)
print(self.right_bins)
axs.set_ylim(bottom = 0)
axs.set_xlim(left = 0)
plt.show()
self.right_bins и self.y_values возвращают списки равной длины в моей программе. Я просто не могу нанести эти списки на график или подзаговор.