2013-03-05 2 views
6

Я создаю финансовую круговую диаграмму с использованием HighCharts, которая представляет распределение активов. Моя цель - создать диаграмму, которая представляет фактические значения распределения в каждом фрагменте, но внутри каждого слайда будет отображаться по существу вторая метка данных, которая отображает целевой процент для различных инвестиционных средств. Важно отметить, что текущее распределение активов может не всегда соответствовать целевому значению распределения.HighCharts Pie Chart - Добавить текст внутри каждого фрагмента

У меня все работает, за исключением ярлыков Target внутри каждого слайда. Смотрите рисунок ниже для того, что я хотел бы выполнить:

enter image description here

Вот то, что я до сих пор:

  var asset_allocation_pie_chart = new Highcharts.Chart({ 
      chart: { renderTo: 'asset_allocation_bottom_left_div' }, 
      title: { text: 'Current Asset Allocation', style: { fontSize: '17px', color: entity_color, fontWeight: 'bold', fontFamily: 'Verdana'} }, 
      subtitle: { text: '(As of ' + effective_date_formatted + ')', style: { fontSize: '15px', color: entity_color, fontFamily: 'Verdana', marginBottom: '10px' }, y: 40 }, 
      tooltip: { pointFormat: '{series.name}: <b>{point.percentage}%</b>', percentageDecimals: 0 }, 
      plotOptions: { 
       pie: { allowPointSelect: true, cursor: 'pointer', dataLabels: { enabled: true, color: '#000000', connectorWidth: 1, connectorColor: '#000000', formatter: function() { return '<b>' + this.point.name + '</b>:<br/> ' + Math.round(this.percentage) + ' %'; } } } 
      }, 
      series: [{ 
       type: 'pie', 
       name: 'Asset Allocation', 
       data: [['Investment Grade Bonds', InvestmentGradeBondPercentage], ['High Yield Bonds', HighYieldBondPercentage], ['Hedged Equity', HedgedEquityPercentage], ['Global Equity', GlobalEquityPercentage], ['Cash', CashPercentage]] 
      }], 
      exporting: { enabled: false }, 
      credits: { enabled: false } 
     }); 
+0

я предлагаю ознакомиться с темой http://stackoverflow.com/questions/13488813/ похожую Highcharts-секторных datalabels-внутри и снаружи –

ответ

6

Вот jsfiddle для этого и код, чтобы показать datalabels внутри и снаружи ,

Для достижения этой цели

  1. вам нужно дать два пирога серии диаграммы. один будет смотреть спереди, а другой будет сзади.
  2. если вы хотите имитировать его, то внесите изменения в size: '80%'.
  3. Расстояние: использование расстояния - это отображение входов и выходов datalabels, которые вы можете изменить в соответствии с вашими желаниями.
  4. allowPointSelect: значение по умолчанию для этого значения неверно, но если это используется, то круговая диаграмма, расположенная позади, будет показана при нажатии на срез передней круговой диаграммы.

Код:

var asset_allocation_pie_chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'asset_allocation_bottom_left_div' 
     }, 
     title: { 
      text: 'Current Asset Allocation', 
      style: { 
       fontSize: '17px', 
       color: 'red', 
       fontWeight: 'bold', 
       fontFamily: 'Verdana' 
      } 
     }, 
     subtitle: { 
      text: '(As of ' + 'dfdf' + ')', 
      style: { 
       fontSize: '15px', 
       color: 'red', 
       fontFamily: 'Verdana', 
       marginBottom: '10px' 
      }, 
      y: 40 
     }, 
     tooltip: { 
      pointFormat: '{series.name}: <b>{point.percentage}%</b>', 
      percentageDecimals: 0 
     }, 
     plotOptions: { 
      pie: { 
       size: '80%', 
       cursor: 'pointer', 
       data: [ 
        ['Investment Grade Bonds', 100], 
        ['High Yield Bonds', 200], 
        ['Hedged Equity', 300], 
        ['Global Equity', 400], 
        ['Cash', 500] 
       ] 
      } 
     }, 
     series: [{ 
       type: 'pie', 
       name: 'Asset Allocation', 
       dataLabels: { 
        verticalAlign: 'top', 
        enabled: true, 
        color: '#000000', 
        connectorWidth: 1, 
        distance: -30, 
        connectorColor: '#000000', 
        formatter: function() { 
         return Math.round(this.percentage) + ' %'; 
        } 
       } 
      }, { 
       type: 'pie', 
       name: 'Asset Allocation', 
       dataLabels: { 
        enabled: true, 
        color: '#000000', 
        connectorWidth: 1, 
        distance: 30, 
        connectorColor: '#000000', 
        formatter: function() { 
         return '<b>' + this.point.name + '</b>:<br/> ' + Math.round(this.percentage) + ' %'; 
        } 
       } 
      }], 
     exporting: { 
      enabled: false 
     }, 
     credits: { 
      enabled: false 
     } 
    }); 

Круговая диаграмма будет смотреться, как показано ниже:

enter image description here

Смежные вопросы