这是我的代码:
var rawdata='".$performances."';
var mydata=jQuery.parseJSON(rawdata);
if(mydata){
var realData=[];
realData=[
['Activities', 'Performance'],
];
for (x in mydata)
{
var a=parseFloat(mydata[x]['activities']);
var b=parseFloat(mydata[x]['performance']);
realData[x]=[a,b];
}
var data = google.visualization.arrayToDataTable(realData);
var options = {
title: 'Overall Performance',
legend: { position: 'top', maxLines: 3 },
hAxis: {title: 'Activities'},
vAxis: {title: 'Performance'}
};
var chart = new google.visualization.LineChart(document.getElementById('chart_div_line'));
chart.draw(data, options);
输出是:
我想将当前的x轴值更改为整数:1,2,3,4,....,我该怎么办?
提前致谢。
答案 0 :(得分:1)
您可以采取几种不同的方法来解决此问题。第一种是设置轴范围和网格线计数,以便图表默认显示整数值,例如:
vAxis: {
viewWindow: {
min: 0,
max: 2
},
gridlines: {
count: 3
}
}
通常,如果min
和max
是整数且(max - min) / (count - 1)
是整数,则网格线(以及轴标签)将落在整数值上。当您知道图表的有效值范围时,此方法最适合y轴;您也可以将它用于x轴,但我不经常使用它。
另一种方法是使用h/vAxis.ticks
选项指定网格线和标签的位置。 ticks
选项采用一组值或对象。值指定网格线的位置。对象具有v
和f
属性; v
属性指定网格线的位置,f
属性指定要使用的标签。任何没有指定f
属性的值或对象都将根据轴format
选项生成轴标签。
hAxis: {
ticks: [1, 2, 3, 4]
}
或:
hAxis: {
ticks: [{v: 1, f: 'one'}, {v: 2, f: 'two'}, {v: 3, f: 'three'}, {v: 4, f: 'four'}]
}
您可以根据需要混合和匹配数组中的对象和值。这种方法同样适用于x轴和y轴。
您可以采用一种方法使用一个轴,另一种方法采用另一种轴,但如果将它们混合在同一轴上,请注意ticks
选项会覆盖gridlines.count
,如果您在viewWindow
设置范围之外放置一个刻度线,您将看不到它。
答案 1 :(得分:0)
尝试:
var a=parseFloat(mydata[x]['activities'].toFixed());
var b=parseFloat(mydata[x]['performance'].toFixed());
toFixed()
会将您的号码转换为字符串;您正在使用parseFloat()
,因此字符串将转换回数字。