我正在使用Google图表的折线图,并将以下示例放在一起:http://codepen.io/anon/pen/epJqaX
如您所见,所有数据点都有一个日期,一个值1和一个值2。
目前,我仅对hAxis
使用以下代码:
hAxis: {
format: 'MMMM',
ticks: dateTicks,
}
现在
hAxis
上的标签始终位于垂直线的中心,但是我希望它们在相应月份的中心,如下图所示:我该怎么办?
最佳答案
第一个答案(semirturgay)方向正确,但是存在一些严重问题:
它不起作用,至少应该将其包装为ready
事件
它不关心本地化。例如,当我运行OP提供的代码时,由于我位于丹麦,所以月份被翻译为“ januar”,“ februar”等。将硬编码的字符串与Google可视化本地化的格式化值进行比较是不明智的,它将失败。
它正在使用jQuery
这是一个使用Google可视化自己的格式方法的有效解决方案,如果需要更改date
的格式(只需将DateFormat({pattern: 'MMMM'})
更改为hAxis
的任何值:format
),也可以轻松更改。 :
google.visualization.events.addListener(chart, 'ready', function() {
var indent = 120,
texts = document.querySelectorAll('text'),
formatter = new google.visualization.DateFormat({pattern: 'MMMM'});
function indentText(month) {
for (var t=0;t<texts.length;t++) {
if (texts[t].textContent == month) {
texts[t].setAttribute('x', parseInt(texts[t].getAttribute('x'))+indent);
return;
}
}
}
for (var i=0;i<dateTicks.length;i++) {
indentText(formatter.formatValue(dateTicks[i]));
}
})
已将代码笔代码移至小提琴-> http://jsfiddle.net/no4ztpuc/
关于javascript - Google图表:折线图hAxis标签居中,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32610427/