2
A
回答
3
使用多個Y軸,並將它們分配到與由startAngle分離的窗格。
分析器
var colors = Highcharts.getOptions().colors,
each = Highcharts.each,
series = [{
yAxis: 0,
data: [10, 20, 30]
}, {
yAxis: 1,
data: [1, 2, 3]
}, {
yAxis: 2,
data: [4, 2, 1]
}, {
yAxis: 3,
data: [5, 1, 3]
}, {
yAxis: 4,
data: [2, 3, 4]
}],
yAxis = [],
panes = [],
startAngle = 0;
each(series, function(serie, i) {
yAxis.push({
pane: i,
showLastLabel: true,
gridLineWidth: i === 0 ? true : false,
labels: {
useHTML: true,
formatter: function() {
return '<span style="color:' + colors[i] + '">' + this.value + '</span>';
}
}
});
panes.push({
startAngle: startAngle
});
startAngle += 72;
});
圖表configuartion
$('#container').highcharts({
/*
chart options
*/
pane: panes,
yAxis: yAxis,
series: series
});
實施例:
0
我相信塞巴斯蒂安博尚的回答是堅如磐石由於他的pane
屬性的建議。但是,我正在用另一種方法修補,並希望與您和社區分享。
我的解決方案利用了「虛擬」系列,這些系列是用戶看不到或與之交互的系列,但可以幫助您定製功能,如標籤。
我添加了六個「虛擬」系列,其中包含蜘蛛圖的每個輻條的標籤。第一個「零」值是空白的,但其他的將顯示沿輻條的第一,第二,第三等點的數據標籤。
圖表中籤後,我用的是功能,這些「虛擬」系列添加到圖表:
// Add "dummy series to control the custom labels.
// We will add one for each spoke, but first will always be
// overriden by y-axis labels; I could not figure out how to
// disable that behavior.
// The color, showInLegend, and enableMouseTracking attributes
// prevent the user from seeing or interacting with the series
// as they are only used for the custom labels.
var chart = $('#container').highcharts();
var labelArray = [
['','1','2','3','4','5'],
['','j','k','l','m','n'],
['','one','two','three','four','five'],
['','u','v','w','x','y'],
['','a','b','c','d','e']
];
for (var i = 0; i<=5; i++) {
chart.addSeries({
name: 'dummy series #' + i + ' for label placement',
data: [
{ name: labelArray[0][i], y: i },
{ name: labelArray[1][i], y: i },
{ name: labelArray[2][i], y: i },
{ name: labelArray[3][i], y: i },
{ name: labelArray[4][i], y: i }
],
dataLabels: {
enabled: true, padding: 0, y: 0,
formatter: function() {
return '<span style="font-weight: normal;">' + this.point.name + '</span>';
}
},
pointPlacement: 'on',
lineWidth: 0,
color: 'transparent',
showInLegend: false,
enableMouseTracking: false
});
}
有幾項要注意:
lineWidth: 0
和color: 'transparent'
使「虛擬」系列線隱形showInLegend: false
防止它們出現在圖例中enableMouseTracking: false
防止與之交互的用戶
下面是說明這是如何小提琴:http://jsfiddle.net/brightmatrix/944d2p6q/
結果看起來是這樣的:
剛上怪癖,我注意到在我的評論中:我無法弄清楚如何覆蓋第一個輻條上的標籤(在12點鐘位置)。如果我將y軸標籤設置爲「false」,它將拒絕顯示任何內容,即使是我在「虛擬」系列中設置的自定義數據標籤。因此,我建議你的第一個發言是你的例子中的數字標籤。
我意識到這可能是一條更復雜的路線,但我希望這對您和其他人有所幫助。
相關問題
- 1. 在Highcharts上有幾個單位Spiderweb
- 2. Highcharts:與多個軸
- 3. HighCharts多個Y軸
- 4. Highcharts - 多個Y軸
- 5. 爲座標軸上的多個刻度設置matplotlib縱橫比
- 6. Highcharts - 具有相同x比例的多個繪圖
- 7. Highcharts Spiderweb具有不同的最大值
- 8. 用多個座標軸繪製
- 9. 道場具有多個軸
- 10. Highcharts記錄座標軸2
- 11. Highcharts多個x軸沒有多個系列?
- 12. 在一個座標軸上繪製多列python
- 13. 如何將多個子圖放在一個圖中,只有兩個座標軸
- 14. 如何在yy座標軸上定位標記在Highcharts
- 15. 如何在excel xy圖表的兩個座標軸上設置相同比例
- 16. 多軸ssrs上的鎖定比例
- 17. 同一座標上的多個標記
- 18. AChartEngine多軸比例尺
- 19. Highcharts多個y軸單元不顯示
- 20. Highcharts - 多個Y軸堆積圖
- 21. Highcharts |製作多個y軸刻度
- 22. HighCharts(LineCharts)X軸元件混到一個具有多個用於在highchart x軸元素的數目另一個
- 23. 具有多個Javascript實例的頁面上的多個控件
- 24. 在x軸上繪製多條線Highcharts
- 25. Matplotlib:生成具有不同的倒數比例的多個雙軸
- 26. 如何構造原點具有單個標籤的座標軸?
- 27. 具有多個y軸的分組箱
- 28. R:具有註釋的多個x軸
- 29. 於imagesc具有多個軸和ticklines
- 30. 具有多個Y軸的Android圖形
感謝您的建議Mike Zavarello。這很有幫助。但在您的建議中,如果特定軸的比例與其他軸相比非常高,則不會自動進行調整。請看看這個jsfiddle。 http://jsfiddle.net/sanjaipt/ee28r4rq/1/ 有沒有什麼可能的辦法來解決這個問題呢?請建議。 – sanjaipt
@sanjaipt你不能在這種圖表上繪製出諸如'[3,200,4,3,4]'等完全不同的值。蜘蛛或極座標圖的輻條全部以相同的比例或間隔工作。如果您只是想顯示**比較**而不是嚴格的數值,則可以將數據點分成適合其他輻條的比例(例如200/100以獲得2)。 –