1
A
答えて
1
だけでChart.jsは次のように曲をカットするオプションはありません。しかし、いつでもdefine your own chart typeすることができます!
ここではpie
チャートをcutOutPie
タイプにサブクラス化します。チャートクラスはupdateElement
関数を使って "円のスライス"を構成するので、それを上書きして要素の位置をシフトします。詳細はreading the sourceで見つけることができます。
Chart.defaults.cutOutPie = Chart.helpers.clone(Chart.defaults.pie);
Chart.controllers.cutOutPie = Chart.controllers.pie.extend({
updateElement: function(arc, index, reset) {
Chart.controllers.pie.prototype.updateElement.call(this, arc, index, reset);
var displacement = this.getDataset().displacements[index]||0;
var model = arc._model;
var angle = model.startAngle + model.circumference/2;
model.x += Math.cos(angle) * displacement;
model.y += Math.sin(angle) * displacement;
}
});
new Chart('chart', {
type: 'cutOutPie',
data: {
labels: ['a', 'b', 'c', 'd', 'e', 'f'],
datasets: [{
data: [1, 7, 2, 8, 3, 9],
backgroundColor: ['red', 'orange', 'green', 'gold', 'pink', 'blue'],
displacements: [0, 0, 40, 0, 0, 16],
}],
},
});
<script src="//cdnjs.cloudflare.com/ajax/libs/Chart.js/2.5.0/Chart.min.js"></script>
<canvas id="chart" width="400" height="300"></canvas>
関連する問題
- 1. Chartjsの円グラフのツールチップモードラベル
- 2. Chartjs用の円グラフ - JSON Ajax HTTP GETリクエスト?
- 3. Chartjs円グラフが動的データから表示されない
- 4. ハイチャートの円グラフの円グラフ
- 5. chartist.js円グラフの円グラフと円のパーセンテージ
- 6. 円グラフ(ドーナツ)グラフ
- 7. 折れ線グラフCanvasJS/ChartJS
- 8. R円の円グラフのカスタムカラー
- 9. 円グラフ(SharedPreferences)
- 10. 円グラフ - 陰影
- 11. 動的円グラフ
- 12. iPhone:Core Plot、円グラフ
- 13. OpenLayers円グラフ
- 14. 円グラフの値
- 15. charts.jsレイヤードドーナツ円グラフ
- 16. Googleの円グラフ
- 17. 円グラフ・レジェンド - Chart.js
- 18. 円グラフのカラーパターン
- 19. ラファエル円グラフ
- 20. 円グラフ(highcharts)
- 21. Googleの円グラフ
- 22. LWUITを使った円グラフ、棒グラフ、グラフ
- 23. 空白 - ChartJSの折れ線グラフのポイントストローク
- 24. 動的データセットのChartJS棒グラフ固定幅
- 25. Androidの3D円グラフ
- 26. JasperReport円グラフの例
- 27. d3円グラフのテキストラベルラップ
- 28. はJFreeChartは - 円グラフ
- 29. D3 - dougnutバブル円グラフ
- 30. サイズ付き円グラフ
ありがとう!私は実際にJavascriptで遊んでいましたが、ハックする場所を見つけられたことはありがたいことです。しかし、それをきれいにする方法を示す完璧な例を与えてくれてありがとう! – joakimk
これは素晴らしいことですが、1つのことを除いて:移動された円の部分は、グラフ領域の外に落ちてしまいます。面積を広げて(最大変位を与える)、または円の半径を同様に小さくする必要があります。私はどちらかが視覚的に同じ結果を持つと仮定しますか?あなたの 'updateElement'内で' this.chart.outerRadius'などを減らそうとしましたが、何も変わりません。 – joakimk
すばやく回避策として['Chart.defaults.global.layout = {padding:100}'](http://www.chartjs.org/docs/#chart-configuration-layout-configuration)を試すこともできますが、チャート全体のサイズが小さくなります。 – kennytm