【发布时间】:2020-07-13 14:59:43
【问题描述】:
我正在尝试按照此处列出的说明将 Plotly 散点图集成到我的 Django 应用程序中:Embedding a Plotly chart in a Django template。
我想在 Plotly 图上呈现的数据来自应用程序的 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
问题在于,当 Plotly Graph 在网页上呈现时,数据混乱,以至于电影的片名与上映日期和总票房不匹配。
我认为问题在于数据库中存在缺失值或“空”值,因此当我在“release_date”、“gross”和“title”values_list 上调用列表函数时,数据会出现错位。 (我已经检查了网站后端的模型,数据很好-查询数据时出现问题)。
有没有比我上面所做的使用列表函数更好的方法来呈现这些数据,或者有更好的方法一起解决这个问题。
谢谢!
【问题讨论】:
标签: python sql django plotly django-class-based-views