Javascript 使用节点下载高图表数据,但不在浏览器中显示
我对高分图表有点不理解。我可以从浏览器下载图表,但它不显示 这是我的javascript文件Javascript 使用节点下载高图表数据,但不在浏览器中显示,javascript,jquery,highcharts,Javascript,Jquery,Highcharts,我对高分图表有点不理解。我可以从浏览器下载图表,但它不显示 这是我的javascript文件 chart.js var cpvmPartners = []; var cpvmPlannedCPM = []; graphData = [] $(function(){ $.getJSON('/cpvmdata', function(data) { for(k in data){ graphData.push([data[k]['partner']
chart.js
var cpvmPartners = [];
var cpvmPlannedCPM = [];
graphData = []
$(function(){
$.getJSON('/cpvmdata', function(data) {
for(k in data){
graphData.push([data[k]['partner'],data[k]['plannedcpm']])
}
});
$(function () {
$('#cpvmSummary').highcharts({
chart: {
type: 'column'
},
title: {
text: 'World\'s largest cities per 2014'
},
subtitle: {
text: 'Source: <a href="http://en.wikipedia.org/wiki/List_of_cities_proper_by_population">Wikipedia</a>'
},
xAxis: {
type: 'category',
labels: {
rotation: -45,
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
},
yAxis: {
min: 0,
title: {
text: 'Population (millions)'
}
},
legend: {
enabled: false
},
tooltip: {
pointFormat: 'Population in 2008: <b>{point.y:.1f} millions</b>'
},
series: [{
name: 'Population',
data: graphData ,
dataLabels: {
enabled: true,
rotation: -90,
color: '#FFFFFF',
align: 'right',
format: '{point.y:.1f}', // one decimal
y: 10, // 10 pixels down from the top
style: {
fontSize: '13px',
fontFamily: 'Verdana, sans-serif'
}
}
}]
});
});
});
var cpvmPartners=[];
var cpvmPlannedCPM=[];
图形数据=[]
$(函数(){
$.getJSON('/cpvmdata',函数(数据){
用于(数据中的k){
graphData.push([data[k]['partner'],data[k]['plannedcpm']))
}
});
$(函数(){
$('cpvmSummary')。高图({
图表:{
类型:“列”
},
标题:{
文字:“2014年世界最大城市”
},
副标题:{
文本:“来源:”
},
xAxis:{
类型:'类别',
标签:{
轮调:-45,
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
},
亚克斯:{
分:0,,
标题:{
正文:“人口(百万)”
}
},
图例:{
已启用:false
},
工具提示:{
pointFormat:'2008年人口:{point.y:.1f}百万'
},
系列:[{
姓名:'人口',
数据:graphData,
数据标签:{
启用:对,
轮换:-90,
颜色:“#FFFFFF”,
对齐:“右”,
格式:'{point.y:.1f}',//一位小数
y:10,//从顶部向下10像素
风格:{
fontSize:'13px',
fontFamily:“Verdana,无衬线”
}
}
}]
});
});
});
这是html
<div class="container">
<!-- Portfolio Item Heading -->
<div class="row">
<div class="col-lg-12">
<h1 class="page-header">CPVM Summary
<!-- <small>CPVM Summary</small> -->
</h1>
</div>
</div>
<!-- jQuery -->
<script src="js/jquery.js"></script>
<script src="js/cpvmGraphs.js"></script>
<!-- Bootstrap Core JavaScript -->
<script src="js/bootstrap.min.js"></script>
<!-- High Charts -->
<script src="https://code.highcharts.com/highcharts.js"></script>
<script src="https://code.highcharts.com/modules/exporting.js"></script>
CPVM摘要
不知道在这一点上还能做什么,为什么它在一个地方加载,而不是在另一个地方加载,任何信息都将不胜感激 这是因为您在一个“on DOM ready”函数中获取数据,然后在另一个函数中呈现图表。您获取的数据是异步的,因此它在返回之前不在那里,但是您需要在返回之前渲染图表 要解决这个问题,请将所有图表内容放在一个单独的函数中,我们称之为renderChart,然后在获得JSON后,在另一个函数中,呈现图表并传递数据 以下是文档中的一个示例:
$(document).ready(function() {
var options = {
chart: {
renderTo: 'container',
type: 'spline'
},
series: [{}]
};
$.getJSON('data.json', function(data) {
options.series[0].data = data;
var chart = new Highcharts.Chart(options);
});
});
控制台中是否存在任何类型的错误?这是因为您在一个“一个dom就绪”函数中获取数据,然后在另一个函数中呈现图表。您的数据获取是异步的,因此在它返回之前它不在那里,但是您需要在返回之前呈现图表。要解决此问题,请将所有图表内容放在一个单独的函数中,我们称之为renderChart,然后在获取json后,在另一个函数中呈现图表,并将数据传入。。。这有意义吗?@Omarjmh完美!谢谢。见下文。。获取带有链接的书面答案