无法进入django chartit formatter字段

时间:2013-10-30 06:14:07

标签: javascript python django charts highcharts

我正在开发一个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'

我应该怎么做才能使这些功能“可以调用”

2 个答案:

答案 0 :(得分:0)

我希望这些链接可以帮助您找出问题 -

xAxisyAxis - http://jsfiddle.net/gh/get/jquery/1.7.2/highslide-software/highcharts.com/tree/master/samples/highcharts/xaxis/labels-formatter-linked/

的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/