配置饼图以使用最小空间并且永远不会隐藏标签

时间:2016-03-07 12:22:46

标签: javascript highcharts

我试图将饼图配置为使用尽可能小的空间。

  1. 我设置了固定直径(圆圈,而不是容器),以便我可以比较两个图表。
  2. 没有设置固定的宽度和高度(到容器),因为它可以隐藏标签(标签是动态的。有时它们可​​能很长。而且每个图表的长度都不同。)
  3. 这是jsfiddle。 请注意,有两个图表一个在另一个下面。

    这是我的代码:

    $(function ()
    {
      draw('container1');
      draw('container2');
      function draw(id)
      {
          $('#' + id).highcharts(
          {
              chart: {
                        plotBackgroundColor: null,
                        plotBorderWidth: null,
                        plotShadow: false,
                        type: 'pie'
                    },
              title:{ text: null },
              legend: { enabled: false },
              credits: { enabled: false },
              tooltip: { pointFormat: '{series.name}: <b>{point.percentage:.1f}%</b>' },
              plotOptions: {
                              pie: {
                                      size: 100,
                                      allowPointSelect: true,
                                      cursor: 'pointer',
                                      dataLabels: {
                                          enabled: true,
                                          format: '<b>{point.name}</b>: {point.percentage:.1f} %',
                                          style: {
                                              color: (Highcharts.theme && Highcharts.theme.contrastTextColor) || 'black'
                                          }
                                      }
                                  }
                          },
              series: [/* data */]
          });
      }
    });
    

    当前问题:

    1. 图表周围有一些未使用的空间(灰色)。
    2. 右侧即使左侧有空间,也会隐藏标签的某些部分。
    3. Pie Chart With Unused Space

      编辑1:如果未在容器元素上设置,则从api docs它似乎使用默认高度400px和宽度600px。有没有办法指示它使用所需的最小宽度和高度?

1 个答案:

答案 0 :(得分:1)

2:饼图大小的原因,如果增加大小,就不会看到它。

3的原因:如果设置图表的大小,则highcharts不会自动重新定位图表,并且图表的中心将是div的中心,这会导致切断标签。 如果您没有设置尺寸,highcharts会重新定位图表以容纳绘图区域中的所有标签。

尝试使用minSize而不是size。