删除django中列表中项目的引号以获得高图表
Remove quotes from an item in list in django for highcharts
我正在编写一个django web应用程序,我使用高图打印图形。我必须使用一些技巧才能在django中真正发挥作用,但有些事情我就是想不通。
看看这里:
http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/spline-symbols/
有太阳和云代表最高和最低温度。我想做一些类似的东西。
我的观点.py看起来像这样:
# load data to variable last_day_data
class Chartdata(object):
def load_last_day():
values = Temperature.objects.raw('SELECT...')
for x in values:
last_day_data['avg_temperature'].append(round(x.avg_temperature,2))
last_day_data['date'].append('%s:00' % x.id)
return last_day_data
# set-up highcharts variables and pass to home.html
def home(request):
last_day_data = Chartdata.load_last_day()
chart3 = {"renderTo": 'chart_3', "type": 'line', "height": 300,}
title3 = {"text": 'Last 24 Hours Temperature'}
xAxis3 = {"title": {"text": 'Date'}, "categories": last_day_data['date'], "reversed": 'true'}
yAxis3 = {"title": {"text": 'Temperature [°C]'}}
series3 = [{"name": 'Temperature [°C]', "data": last_day_data['avg_temperature']}]
chart = {
'chartID3': 'chart_3',
'chart3': chart3,
'series3': series3,
'title3': title3,
'xAxis3': xAxis3,
'yAxis3': yAxis3
}
return render(request, 'home.html', chart)
快速查看home.html(实际上它只负责将传递的数据映射到highchart变量):
<script>
$(document).ready(function() {
$({{ chartID3|safe }}).highcharts({
chart: {{ chart3|safe }},
title: {{ title3|safe }},
xAxis: {{ xAxis3|safe }},
yAxis: {{ yAxis3|safe }},
series: {{ series3|safe }}
});
});
</script>
现在,在加载我的网站后,上面的代码(确切地说是"系列")看起来像这样:
series: [{'name': 'Temperature [°C]', 'data': [12.0, 13.11, 14.59, 14.6, 14.36, 14.09, 13.73....]}]
我要做的是:找到最高值并将其替换为(根据jsfiddle):
{{y: highest_value, marker: {symbol: 'url(sun url)'}}
找到最高值很容易,比方说我把它存储在"索引"下的"值"中,所以我这样做:
last_day_data['avg_temperature'][index] = "{y: %s, marker: {symbol: 'url(sun url)'}}" % value
但图表显示不正确,并查看网站来源:
series: [{'name': 'Temperature [°C]', 'data': [12.0, 13.11, 14.59, "{y: 14.6, marker: {symbol: 'url(sun url)'}}", 14.36, 14.09, 13.73, 13.29, 12.86, 12.82.... ]}]
结论:它不适用于引号,我不知道如何删除它们。有什么想法可以快速、轻松、无痛地完成吗?
终于弄明白了,改为:
last_day_data['avg_temperature'][index_max] = "{'"y'": %s, '"marker'":" '
" {'"symbol'": '"url(%ssun.png)'"}" '
"}" % (value_max, settings.STATIC_URL)
和内部home.html:
var series = {{ series3|safe }};
var obj = series[0]['data'];
for(var x in obj){
if(typeof obj[x] === "string") obj[x] = JSON.parse(obj[x]);
}
series[0]['data'] = obj;
$({{ chartID3|safe }}).highcharts({
chart: {{ chart3|safe }},
title: {{ title3|safe }},
xAxis: {{ xAxis3|safe }},
yAxis: {{ yAxis3|safe }},
series: series
});
现在它工作得很完美!
相关文章:
- 如何访问高图表工具提示中的任何特定数据
- 将图表动态添加到组合高图表中
- 在Firefox中导出高图表时出现黑色图像错误
- 在高图表中,每x步只显示标签
- 高图表的文本溢出问题
- 单击时获取父级子级高图表
- 如何在拖动后获得图表的最小值和最大值放大高图表
- 制作高图表'setExtremes使用两个Y轴取消勾选
- ng高图表的响应行为,加载时隐藏编译的ng点击xAxis标签
- 如何根据创建日期对对象进行排序,以插入Meteor的高图表
- 在图例项目之间添加额外空间的高图表
- 正在读取高图表中上载的csv文件
- 高图表数据导入 JSON - 格式
- 带有背景色的高图表柱形图
- 高图表 - 拖动哥伦范围
- 高图表不显示来自csv文件的数据
- 性能问题高图表图和 socket.io
- 高图表图像渲染器自动高度
- 高图表数据标签重叠
- 删除django中列表中项目的引号以获得高图表