我有一个原始数据,现在我需要使用原始数据来绘制一个高图表并传递给Django,任何人可以分享我如何绘制一个高图表的基本知识,以便在HTML页面中显示?我是python,Django和Highchart的新手,我已经通读了Highchart上的所有相关材料,但我仍然不理解,也不能开始使用它。
我可以从这个https://www.highcharts.com/demo/line-basic中提取一个图表,但在我的例子中,我需要提取所有数据并绘制一个图表。我尝试应用{% block content%},标题都基于我在数据框中的原始数据名称,但我仍然无法构建图表
发布于 2017-04-29 15:58:33
根据你的错误信息,似乎Django无法确定urls.py
文件中名为bar
的url,我想你忘记了将named urls作为bar
,这样javascript函数就可以从BarView获取数据。
下面添加一个示例,项目名称为questions
,并创建一个名为charts
的新应用,项目结构如下:
--图表
--问题
--db.sqlite3
--manage.py
1,questions/urls.py
from django.conf.urls import url, include
from django.contrib import admin
from charts import views as charts_views
urlpatterns = [
url(r'^bar$', charts_views.BarView.as_view(), name='bar'),
url(r'^charts/', include('charts.urls')),
url(r'^admin/', admin.site.urls),
]
2、charts/urls.py
from django.conf.urls import url
from . import views
app_name = 'charts'
urlpatterns = [
url(r'^$', views.index),
]
3,charts/views.py
from django.shortcuts import render
# Create your views here.
from highcharts.views import HighChartsBarView
import random
def index(request):
return render(request, 'charts/index.html')
class BarView(HighChartsBarView):
categories = ['Orange', 'Bananas', 'Apples']
@property
def series(self):
result = []
for name in ('Joe', 'Jack', 'William', 'Averell'):
data = []
for x in range(len(self.categories)):
data.append(random.randint(0, 10))
result.append({'name': name, "data": data})
return result
4、charts/templates/charts/index.html
{% load staticfiles %}<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Hello</title>
<script type="text/javascript" src="//ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<script type="text/javascript" src="{% static 'js/highcharts/highcharts.js' %}"></script>
<script type="text/javascript">
$(function () {
$.getJSON("{% url 'bar' %}", function(data) {
$('#container').highcharts(data);
});
});
</script>
</head>
<body>
<div id="container" style="height: 300px"></div>
</body>
</html>
5 .运行服务器,并在浏览器中键入http://127.0.0.1:8000/charts/
它会给你展示图表,希望能对你有所帮助。
https://stackoverflow.com/questions/43691573
复制相似问题