javascript - 配置饼图以使用最小空间并且从不隐藏标签

标签 javascript highcharts

我正在尝试配置饼图以使用尽可能小的空间。

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

这是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. 即使左侧有可用空间,右侧标签的某些部分也会被隐藏。

Pie Chart With Unused Space

编辑 1:来自 api docs如果没有在容器元素上设置,它似乎使用默认高度 400px 和宽度 600px 。有什么方法可以指示它使用所需的最小宽度和高度吗?

最佳答案

原因2:饼图大小,增大就看不到了。

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

尝试使用 minSize 而不是 size。

关于javascript - 配置饼图以使用最小空间并且从不隐藏标签,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35843662/

相关文章:

javascript - 如何在 Highcharts 同步图表中仅显示一个 x Axis 标签

Javascript、正则表达式 - 从头开始​​获取数字

javascript - 将数据从 Python 发送到 Javascript (JSON)

javascript - 如何让 IFRAME 占据网页的右半部分?

javascript - 需要帮助使用 SharePoint 列表和 PSServices 将其他系列添加到 Highcharts 图表中

javascript - 将数据从 $ajax 调用传递到 highcharts

php - jquery获取单选按钮的值

javascript - jQuery - $(window).load 与 $(window).prop ('complete' )

javascript - 在 Angular js 中使用 json 数据填充 Highchart

javascript - 如何防止在图形区域或浏览器窗口调整大小时隐藏 highcharts 工具提示弹出窗口?