2013-07-24 207 views
0

是否有一種編程方式爲HighCharts的分組條形圖中的單個條形圖提供軸標籤?在Highcharts的分組條形圖中標記單個條形圖

用例:用例是指處理分組和疊加的圖形。使用這些圖表很難在視覺上傳達(沒有工具提示)單個條形圖所代表的內容,除非它們具有單獨的標籤。

默認行爲: 作爲例子參見堆疊和分組柱圖,其中它最初可能是不清楚的是,在每個集羣中的個體棒代表不同性別的HC演示:http://www.highcharts.com/demo/column-stacked-and-grouped

目標:這是我想要實現的一個例子。是否有可能以編程方式執行此操作,例如使用第二個X軸?也許另一個想法是巧妙地使用堆棧總數,但當然這會妨礙顯示實際堆棧總數。

enter image description here

回答

0

這是不完全相同的結果爲你的形象,但它顯示了stackLabels

yAxis: { 
    ... 
    stackLabels: { 
     enabled: true, 
     formatter: function() { 
      return this.stack; 
     } 
    } 
}, 

顯示的標籤在塔的頂部。

Example

2

有幾個選項,這些選項可以幫助你。

首先,stackLabels格式化程序允許您確定標籤中的內容。

其次,veticalAlign:「底部」允許您將標籤放置在堆棧的底部。

第三,'y'選項允許您將標籤相對於其默認位置移動。

問題在於,您似乎無法將標籤移動到海圖區域之外。其中一種方法是以負值開始y軸,爲標籤留出空間。然後,您可以將x軸的位置移動到圖表區域。

http://jsfiddle.net/WY6QB/

xAxis: { 
      offset:-43, 
      labels:{ 
       y:40 
      }, 
      categories: ['Apples', 'Oranges', 'Pears', 'Grapes', 'Bananas'] 
     }, 


stackLabels: { 
       verticalAlign:"bottom", 
       y:20, 
       enabled: true, 
       formatter: function() { 
        return this.stack; 
       } 
      } 

剩下的唯一的事情就是儘量去除僞 '-2' y軸的點。

-EDIT- 如果您將startOnTick設置爲false,並將y軸min設爲-1.9,則虛假-2點將消失。

min: -1.9, 
startOnTick:false, 

http://jsfiddle.net/V6Cp2/

+0

非常酷的解決方法。只要不需要正常的堆棧標籤(即數字條的總數),這就是完美的。除了下面的堆棧標題之外,您還可以考慮一種適應這種情況的方法:除了下面的堆棧標題外,還需要數字堆棧標籤(位於頂部)? – supertrue

+0

我能想到的唯一的其他選擇是直接使用渲染註釋圖表以在需要的位置添加文本。 http://api.highcharts.com/highcharts#Renderer – SteveP