我正在开发一个django项目,并决定将图表添加到某些页面中。我选择了Chartit来完成任务。
问题在于我想让轴标签和工具提示具有自定义格式,我想将Highcharts的格式化字段用于该作业。
例如,我正在尝试将Y轴标签显示为先例。通过以下方式这样做:
chart_options=
{
'title': {'text':''},
'yAxis': {
'min':0,
'labels': {
'formatter': '''function(){
var pcnt = this.value * 100;
return Highcharts.numberFormat(pcnt) + "%";
}'''
}
}
}
执行此操作时,刷新页面时出现以下错误消息:
Uncaught TypeError: Object function(){
var pcnt = this.value * 100;
return Highcharts.numberFormat(pcnt) + "%";
} has no method 'call'
所以我尝试在我的html模板中编写javascript函数,并以下列方式在python代码中发送它的名称:
#chart_options in views.py
'formatter': 'precentor'
#html template:
<script type="text/javascript">
function precentor(){
var pcnt = this.value * 100;
return Highcharts.numberFormat(pcnt) + '%';
}
</script>
但是我得到了同样的错误: 未捕获的TypeError:对象precentor没有方法'call'
我应该怎么做才能使这些功能“可以调用”
答案 0 :(得分:0)
我希望这些链接可以帮助您找出问题 -
的jsfiddle示例有关formater
回调方法的API文档 - http://api.highcharts.com/highcharts#yAxis.labels.formatter
如果没有您的测试环境,我无法针对您的具体情况进行测试。
答案 1 :(得分:0)
对于这样的情况,你想从django代码调用js函数(例如formatter),你可以使用不同的技术和不使用chartit但直接从模板使用highcharts.js库
您可以查看旧示例https://blogs.harvard.edu/rprasad/2011/08/30/highcharts-django-admin/