gpt4 book ai didi

javascript - 如何通过代码的方式创建highcharts图形的div容器?

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

我需要为 highcharts 图形创建一个 div 容器。这应该通过代码来完成,但我无法使其工作。

之所以通过代码创建div是因为我要显示很多图形。

目前我首先创建 div,然后创建 id,最后创建属性。

图形错误:

Error on graphic

示例:

http://jsfiddle.net/povyq7em/1/

我的代码是:

var nombre="container-speed";

var div = document.createElement('div');
div.setAttribute("style", "width: 580px; height: 400px; float: left");
div.setAttribute("id", nombre);


var gaugeOptions = {

chart: {
type: 'solidgauge'
},

title: null,

pane: {
center: ['50%', '85%'],
size: '140%',
startAngle: -90,
endAngle: 90,
background: {
backgroundColor: (Highcharts.theme &&
Highcharts.theme.background2) || '#EEE',
innerRadius: '60%',
outerRadius: '100%',
shape: 'arc'
}
},

tooltip: {
enabled: false
},


yAxis: {
stops: [
[0.1, '#55BF3B'], // green
[0.5, '#DDDF0D'], // yellow
[0.9, '#DF5353'] // red
],
lineWidth: 0,
minorTickInterval: null,
tickAmount: 2,
title: {
y: -70
},
labels: {
y: 16
}
},

plotOptions: {
solidgauge: {
dataLabels: {
y: 5,
borderWidth: 0,
useHTML: true
}
}
}
};


var chartSpeed = Highcharts.chart(nombre, Highcharts.merge(gaugeOptions, {
yAxis: {
min: 0,
max: 200,
title: {
text: 'Speed'
}
},

credits: {
enabled: false
},

series: [{
name: 'Speed',
data: [80],
dataLabels: {
format: '<div style="text-align:center"><span style="font-size:25px;color:' +
((Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black') + '">{y}</span><br/>' +
'<span style="font-size:12px;color:silver">km/h</span></div>'
},
tooltip: {
valueSuffix: ' km/h'
}
}]

}));
.highcharts-yaxis-grid .highcharts-grid-line {
display: none;
}
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/highcharts-more.js"></script>
<script src="https://code.highcharts.com/modules/solid-gauge.js"></script>

<!--<div id="container-speed" style="width: 300px; height: 200px; float: left"></div>-->

非常感谢您的帮助。

最佳答案

你只是错过了一步。您需要在创建元素后附加该元素。这是代码的开头:

var nombre="container-speed";
var div = document.createElement('div');
div.setAttribute("style", "width: 580px; height: 400px; float: left");
div.setAttribute("id", nombre);
// APPEND ELEMENT TO document.body
document.body.appendChild(div);

另外,我更新了您的fiddle

根据您的要求,我更新了 fiddle再一次。我做了 3 处改变。只有其中一项非常重要。

  1. 声明和值名称用作元素 ID 和 grafica() 的参数var name = "chart-"+ i;
  2. setAttribute 更改为 div.setAttribute("id", name);
  3. ***最重要的是,您在每个地方都将变量 nombre 更改为 name,但这里 var ChartSpeed = Highcharts.chart(name, Highcharts.merge (gaugeOptions, {... 你可以看出,我已经更新了。

关于javascript - 如何通过代码的方式创建highcharts图形的div容器?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46270858/

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