ハイチャートを使用して、このチャートのデザインを複製する作業を行ってきました。
私は目的の結果を得るためにjsfiddleで遊んでいますが、問題は、パーセンテージが満たされていない白い領域を取得できず、バー間のギャップを取得できないことです。
これは、ハイチャートを使用しても可能ですか?
ハイチャートを使用して、このチャートのデザインを複製する作業を行ってきました。
私は目的の結果を得るためにjsfiddleで遊んでいますが、問題は、パーセンテージが満たされていない白い領域を取得できず、バー間のギャップを取得できないことです。
これは、ハイチャートを使用しても可能ですか?
いいえ、完全に可能です。めちゃくちゃ難しいです。でもねえ、どうして?
ハイ チャートの問題は、特定の角度でチャートを回転または配置できないことです。
したがって、あなたが言及した効果を作成できるようにするには、新しいデータ項目ごとに個別のグラフを作成する必要があります.
もちろん、これらすべてをハードコーディングしたくないのでfor
、データ エントリの開始点と終了点、ドーナツの相対的なサイズ (全体のサイズと内側のサイズ)、間隔を考慮して、ループを使用してコードを生成する必要があります。外側のドーナツの間、実際の値の比率などへの変換など: 詳細は割愛します。
試行錯誤の末、以下の結果になりました。
jsFiddle を用意したので、好みに合わせて設定を微調整して、目的の結果を得ることができます。最も重要なパラメータは次のとおりです。
// Specify all properties here:
var MIN = 0; // Specify minimum value (beginning of range)
var MAX = 100; // Specify maximum value (ending of range)
var VALUES = [50, 30, 40, 95, 35]; // Specify the values
var VALUES_WHITE = [20, 20, 20, 20, 20]; // Values for the white donut (5 x 100/5)
var COLORS = ['#1FFFF0', '#FFCD05', '#68EB05', '#EB13EB', '#A7EB09']; // Colors
var CATEGORIES = ['Activity', 'Weight', 'Sleep', 'Health', 'Diet']; // Categories
var BORDERWIDTH_CHART_1 = 20; // The border width for the white donut chart
var BORDER_COLOR = 'rgba(96, 72, 193, 1)';
これらのパラメーターは、コードで使用され、上記のすべての変数を決定します。0
たとえば、値の最小値と最大値を作成しました100
。したがって、 の値はvar VALUES = [50, 30, 40, 95, 35];
、グラフのパーセンテージ (0 ~ 100 スケール) を表します。
現在、5 つの異なるカテゴリのグラフを作成しました。より多く (またはより少なく) したい場合は、それに応じてプロパティを変更するだけで動作します (はずです)。私はまだそれをテストしていません。とにかく、グラフを好みに合わせて改善できます。ラベルにパーセンテージを追加したり、色を改善したりできます。
1 つだけ制限がありますBORDER_COLOR
。チャートの背景色と同じ色でなければなりません。私が作成した jsFiddle では、これがbody
ドキュメントの です (jsFiddle の右上の CSS を参照してください)。
気に入ってくれるといいな :)