gpt4 book ai didi

javascript - 从 django 列表中的项目中删除 Highcharts 的引号

转载 作者:行者123 更新时间:2023-12-03 08:23:42 25 4
gpt4 key购买 nike

我正在编写一个 django Web 应用程序,并使用 highcharts 来打印图表。我必须使用一些技巧才能真正使其在 django 中工作,但有一些我无法弄清楚的事情。

看这里:

http://jsfiddle.net/gh/get/jquery/1.9.1/highslide-software/highcharts.com/tree/master/samples/highcharts/demo/spline-symbols/

最高温度和最低温度有太阳和云。我想做类似的东西。

我的views.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
});

现在可以完美运行了!

关于javascript - 从 django 列表中的项目中删除 Highcharts 的引号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33641633/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com