2017-07-13 9 views
2

来る値に基づいて棒グラフを作成しようとしていますが、すべてのラベルをそのまま表示する必要があります。棒グラフは性質上グループ化されています。ドメイン内に重複した値を表示する方法

私はそのほとんどを作成することができますが、何とか値ラベルが正しく来ていません。チャートビューを乱すさ

["July 02,2017", "July 09,2017", "July 12,2017"] 

["July 02,2017", "July 09,2017", "July 02,2017", "July 12,2017"] 

現在scale.ordinalは次のように設定し、スケールを重複する値を削除して作っています。

x軸に重複した値をそのまま表示するにはどうすればよいですか?

JsFiddle

+0

私が困っ何を描いを抱えていますあなたはそれを意味します - したがって、各棒グラフはx軸上に別のラベルを持つ必要がありますか? – aug

+0

はいラベルは "July 02,2017"、 "July 09,2017"、 "July 02,2017"、 "July 12,2017"のようになり、今は "July 02,2017"、 "July 09,2017 "、" July 12,2017 " –

+0

これはユーザーの観点から考えてみるとよいでしょうが、これは具体的な理由があるかもしれませんが、もっと意味があります。 – aug

答えて

4

D3は、スケールのドメインと範囲のためdomainimageの数学的概念を使用しています。したがって、ドメイン値はユニークである必要があります。

あなたのケースでは回避策は便利indexという名前のプロパティを作成するために、各オブジェクトのインデックスを使用する、このように、あなたのデータ配列内の別のプロパティを作成しています:

data.forEach(function(d, i) { 
    d.index = i 
}) 

すると、そのプロパティを使用します(これはあなたのxスケールのドメインのユニークの値)です。

また、あなたはtickFormatで行うことができますXスケールのためのダニを変更する必要があります。ここでは

.tickFormat(function(d, i) { 
    return data[i].Groups 
}); 

が更新フィドルです:http://jsfiddle.net/wujtnomh/

関連する問題