首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >C3图在角方向上调整大小

C3图在角方向上调整大小
EN

Stack Overflow用户
提问于 2015-12-15 16:51:14
回答 1查看 2K关注 0票数 1

目前,我使用C3创建了一个简单的甜甜圈图。我把它放进了指令里,一切都很好。

我的指示如下:

代码语言:javascript
复制
angular.module('dashboardApp').directive('donutChart',function(){       

    function link(scope,element,attr){      


        scope.$watch(function() {

            return scope.data;
         },
            function() {                    
                if(scope.data !== undefined){                       

                    var chart  = c3.generate({
                        bindto: 'donut-chart',
                        data:{
                            columns : scope.data,                           
                            type: 'donut'
                            },
                        donut:{
                            label : {
                                format: function(value,ratio,id){
                                    return value;
                                },

                            }
                        },
                        tooltip:{
                                position: function(data,width,height,element){
                                    return {top:-180,left:300}
                                }
                            },                      
                    }); 
                }       
            }
        )};         

    return {
        restrict: 'EA',         
        scope: {
            data: '='       

        },
        link : link
    };
});

在HTML中,我有以下内容:

代码语言:javascript
复制
<div class="row">
    <div class="donut-route" >
        <donut-chart  data='routes'></donut-chart>
    </div>
</div>

我的目标是在它目前所处的区域内调整甜甜圈的尺寸。

我知道C3调整了大小,可以传递值,也许我可以在$scope.watch中添加窗口大小并每次调整大小,但我不确定这是否太重。通过阅读文档,我认为C3图形会自动调整大小,但由于它在指令中,我认为它受到了限制。

如有任何建议或建议,将不胜感激。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2015-12-16 09:04:59

为了研究这个问题,我将您的代码放在一个工作的柱塞中。

由于生成的图表是一个SVG对象,因此自动调整其大小的方法很棘手。不过,我的建议是探讨以下职位:

https://css-tricks.com/scale-svg/

或者堆栈过流上的这个问题

因此,我认为更有效的方法(正如您所说的)是在generate上使用size选项:

代码语言:javascript
复制
   var chart = c3.generate({
        size: {
          height: 200,
          width: 200
        }...

并调整C3 API的大小方法以更新size:

代码语言:javascript
复制
  chart.resize({height:100, width:300})
票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34294932

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档