Javascript 将数组传递到google图表
我正在尝试用谷歌图表绘制一个甜甜圈图表。我使用的是MVC框架,确切地说是laravel。我有一个数组,我正在通过压缩函数传递给视图。 我真的到处都搜索过,但似乎找不到任何指向我的东西,请记住我对javascript还很陌生 我已经试过: var data=google.visualization.arrayToDataTable(?=$frequency?>) 这是我的服务器端php的摘录Javascript 将数组传递到google图表,javascript,php,laravel,charts,google-visualization,Javascript,Php,Laravel,Charts,Google Visualization,我正在尝试用谷歌图表绘制一个甜甜圈图表。我使用的是MVC框架,确切地说是laravel。我有一个数组,我正在通过压缩函数传递给视图。 我真的到处都搜索过,但似乎找不到任何指向我的东西,请记住我对javascript还很陌生 我已经试过: var data=google.visualization.arrayToDataTable(?=$frequency?>) 这是我的服务器端php的摘录 { $memberNames = array_keys($frequency); $
{
$memberNames = array_keys($frequency);
$frequency = array_count_values($members);
return view('contact.stats', compact('frequency'));
}
这是谷歌用于实现图表的代码
<script type="text/javascript">
google.charts.load("current", {packages:["corechart"]});
google.charts.setOnLoadCallback(drawChart);
function drawChart() {
var data = google.visualization.arrayToDataTable([
['Task', 'Hours per Day'],
['Work', 11],
['Eat', 2],
['Commute', 2],
['Watch TV', 2],
['Sleep', 7]
]);
var options = {
title: 'My Daily Activities',
pieHole: 0.4,
};
var chart = new google.visualization.PieChart(document.getElementById('donutchart'));
chart.draw(data, options);
}
</script>
load(“当前”{packages:[“corechart”]});
google.charts.setOnLoadCallback(drawChart);
函数绘图图(){
var data=google.visualization.arrayToDataTable([
[“任务”,“每天工作小时数”],
[Work',11],
[Eat',2],
[‘通勤’,2],
[“看电视”,2],
[Sleep',7]
]);
变量选项={
标题:“我的日常活动”,
pieHole:0.4,
};
var chart=new google.visualization.PieChart(document.getElementById('donutchart');
图表绘制(数据、选项);
}
就像我在返回$frequency时说的,它看起来像这样{“女性”:74,“其他人”:2,“na”:63,“男性”:59}
我基本上希望将$frequency传递到脚本中的var数据中。php正在返回一个json对象(
{}
)谷歌图表需要一个数组(
[]
)
只是需要转换
var frequency = {"female":74,"others":2,"na":63,"male":59};
var chartData = [];
Object.keys(frequency).forEach(function (name) {
chartData.push([name, frequency[name]]);
});
创建google数据表时,我们需要将
true
作为第二个参数传递给arrayToDataTable
这表示数组中的第一行是数据,而不是列标题
var data = google.visualization.arrayToDataTable(chartData, true);
请参阅以下工作片段
google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
//无功频率=
变异频率={“女性”:74,“其他人”:2,“na”:63,“男性”:59};
var chartData=[];
Object.keys(频率).forEach(函数(名称){
chartData.push([name,frequency[name]]);
});
var data=google.visualization.arrayToDataTable(chartData,true);
变量选项={
标题:“我的日常活动”,
pieHole:0.4,
};
var chart=new google.visualization.PieChart(document.getElementById('donutchart');
图表绘制(数据、选项);
});代码>
php正在返回一个json对象({}
)
谷歌图表需要一个数组([]
)
只是需要转换
var frequency = {"female":74,"others":2,"na":63,"male":59};
var chartData = [];
Object.keys(frequency).forEach(function (name) {
chartData.push([name, frequency[name]]);
});
创建google数据表时,
我们需要将true
作为第二个参数传递给arrayToDataTable
这表示数组中的第一行是数据,而不是列标题
var data = google.visualization.arrayToDataTable(chartData, true);
请参阅以下工作片段
google.charts.load('current'{
软件包:['corechart']
}).然后(函数(){
//无功频率=
变异频率={“女性”:74,“其他人”:2,“na”:63,“男性”:59};
var chartData=[];
Object.keys(频率).forEach(函数(名称){
chartData.push([name,frequency[name]]);
});
var data=google.visualization.arrayToDataTable(chartData,true);
变量选项={
标题:“我的日常活动”,
pieHole:0.4,
};
var chart=new google.visualization.PieChart(document.getElementById('donutchart');
图表绘制(数据、选项);
});代码>