1

我正在做一个 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>

但我得到了同样的错误:未捕获的类型错误:对象 precentor 没有方法“调用”

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

4

2 回答 2

0

我希望这些链接可以帮助您解决问题-

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

关于formater回调方法的 API 文档 - http://api.highcharts.com/highcharts#yAxis.labels.formatter

如果没有您的测试环境,我无法针对您的确切场景进行测试。

于 2014-10-24T08:36:27.880 回答
0

对于这种情况,您想从 django 代码(例如格式化程序)调用 js 函数,您可以采用不同的技术,不使用 chartit,而是直接从模板使用 highcharts.js 库。

您可以查看这个旧示例https://blogs.harvard.edu/rprasad/2011/08/30/highcharts-django-admin/

于 2017-02-03T11:00:07.140 回答