我正试图按照这里的说明将plotly散点图集成到django应用程序中:在django模板中嵌入plotly图表。
我想在plotly graph上呈现的数据来自应用程序的sql数据库,但我不知道如何在不从数据集中删除值的情况下查询数据。
下面是views.py文件:
release_dates = list(models.Film.objects.values_list('release_date', flat=True).distinct())
gross = list(models.Film.objects.values_list('gross', flat=True).distinct())
title = list(models.Film.objects.values_list('title', flat=True).distinct())
class Graph(TemplateView):
template_name = 'graph.html'
def get_context_data(self,**kwargs):
context = super(Graph, self).get_context_data(**kwargs)
trace1 = go.Scatter(x=release_dates, y=gross, marker={'color': 'red'}, hovertext = title,
mode="markers+text", name='1st Trace')
data=go.Data([trace1])
layout=go.Layout(title="Films by Gross", xaxis= {'title':'Year'}, yaxis={'title':'Gross'})
figure=go.Figure(data=data,layout=layout)
div = opy.plot(figure, auto_open=False, output_type='div')
context['graph'] = div
return context
问题是,当情节图呈现在网页上时,数据会变得杂乱无章,以至于影片的片名与上映日期和总票房不符。
我认为问题是数据库中缺少或“null”值,因此当我调用“release\u date”、“gross”和“title”值列表上的list函数时,数据会变得不对齐(我已经检查了网站后端的模型,数据是好的(当数据被查询时问题就出现了)。
有没有更好的方法来呈现这些数据,而不是像我上面所做的那样使用list函数,或者有更好的方法来处理这个问题。
谢谢!
2条答案
按热度按时间cygmwpex1#
我通过使用
Model.object.values_list
具有三个输入的函数-在一个列表中返回所需的x和y坐标以及hovertext值,然后我可以在其中循环:8ehkhllq2#
也许会迟到,但如果有人看到这一点,一个更简单的方法就是使用Pandas(甚至不是那样)