2013-02-07 62 views
-1

我一直在嘗試使用Highcharts實現餅圖,但在正在裁剪的極低分辨率下遇到數據標籤問題。刪除窗口上的Highchart數據標籤調整大小

我試圖添加一個windows.resize格式化程序:函數()但失敗。

這是我目前使用的代碼:

  // Radialize the colors 
      Highcharts.getOptions().colors = $.map(Highcharts.getOptions().colors, function(color) { 
       return { 
        radialGradient: { cx: 0.5, cy: 0.3, r: 0.7 }, 
        stops: [ 
         [0, color], 
         [1, Highcharts.Color(color).brighten(-0.3).get('rgb')] // darken 
        ] 
       }; 
      }); 

      // Build the chart 
      chart = new Highcharts.Chart({ 
       chart: { 
        renderTo: 'container', 
        plotBackgroundColor: null, 
        plotBorderWidth: null, 
        plotShadow: false, 
        backgroundColor: { 
        linearGradient: [0, 0, 500, 500], 
        stops: [ 

        ] 
        },       
       }, 
       title: { 
        text: 'Header Here' 
       }, 
       tooltip: { 
        pointFormat: '{series.name}: <b>{point.percentage}%</b>', 
        percentageDecimals: 0 
       }, 
       plotOptions: { 
        pie: { 
         allowPointSelect: false, 
         cursor: 'pointer', 
         dataLabels: { 
          enabled: true, 
          color: '#000000', 
          connectorColor: '#000000', 
          formatter: function() { 
           return '<b>'+ this.point.name +'</b>: '+ Math.round(this.percentage) +'%'; 
          } 
         } 
        } 
       }, 
       series: [{ 
        type: 'pie', 
        name: 'Votes', 
        data: [ 
         ['Vote One', 50],     
         ['Vote Two', 50], 
         ['Vote three', 2] 
        ] 
       }] 
      }); 

反正不是建立在調整大小一個新的圖表,該標籤可以設置爲false /隱藏其他?並再次顯示高於某個分辨率?

非常感謝

回答

3

您可以設置useHTML作爲真正的datalabels和格式定義自己的div。然後當你捕捉調整大小事件使用顯示/隱藏functons。是

其點擊按鈕後,顯示/隱藏datalabels簡單的例子可以在這裏找到:

http://jsfiddle.net/VYGEW/

chart = new Highcharts.Chart({ 
     chart: { 
      renderTo: 'container', 
      type: 'line' 
     }, 
     title: { 
      text: 'Monthly Average Temperature' 
     }, 
     plotOptions: { 
      series: { 
       dataLabels: { 
        enabled: true, 
        useHTML: true, 
        formatter: function() { 
         return '<div class="datalabel">' + this.y + '</div>'; 
        } 
       } 
      } 
     }, 
     series: [{ 
      data: [7.0, 6.9, 9.5, 14.5, 18.2, 21.5, 25.2, 26.5, 23.3, 18.3, 13.9, 9.6] 
     }] 
    }, function (chart) { 

     $('#btn').toggle(function() { 

      $('.datalabel').hide(); 
     }, function() { 
      $('.datalabel').show(); 
     }); 

    }); 
+0

輝煌,很簡單的解決!感謝你的幫助 :) – Andross