У меня есть ряд записей модели, содержащих фрейм данных pandas, который хранится в файле h5py. Каждый входной файл имеет следующую структуру:
index - date - rate - active
Я хотел бы представить график изменения столбца ставки с течением времени (дата) для каждого из них. поэтому я начал создавать следующий класс LineChart с django controlcenter
:
import datetime
from django.utils import timezone
from controlcenter import Dashboard, widgets
from .models import Currency
import pandas as pd
class CurrencyPriceLineChart(widgets.LineChart):
title = 'Currency Price (EUR)'
width = 3
height = 550
model = Currency
the_data = model.objects.all()
limit_to = None
class Chartist:
options={
'axisX':{
'labelOffset':{
'x':-24,
'y':0
},
},
'chartPadding':{
'top':24,
'right':24,
}
}
def legend(self):
the_vals = [f.symbol for f in self.the_data]
return the_vals
def labels(self):
today = timezone.now().date()
labels = [(today-datetime.timedelta(days=x)).strftime('%d.%m')
for x in range(self.limit_to)]
return labels
def series(self):
series = []
for sym in self.legend:
item = self.values.get(sym,{})
series.append([item.get(label,0) for label in self.labels])
return series
def values(self):
queryset = []
for currency in self.the_data:
the_file = currency.historical_data.file
df = pd.read_hdf('{}'.format(the_file),'Currency')
queryset.append([df])
return queryset
основная документация там: https://django -controlcenter.readthedocs.io / en / latest / examples.html # displaying-series-in-legend
меня немного смущает, так как вопрос касается вывода данных из входного файла. Вот скриншот того, что я получаю на данный момент: