2017-03-31 13 views
1

D3を使用して2つのx軸(主軸と副軸)を実装しようとしています。 私はすでにそれらの両方が表示されていますが、私の第2の軸はドメインを適切に表示していません。D3バージョン4で2軸を実装する方法

がここcodepen上のコードです:http://codepen.io/wendelcosta/pen/QpzzgJ

g.append("g") 
.attr("class", "axis axis--x2") 
.attr("transform", "translate(0," + height + ")") 
.call(d3.axisBottom(x2)); 

私は大目盛(ヶ月)の間に小目盛りとしてヶ月の日を表示する必要があり、それは以下の画像のように見えるはずです。

Click Here for Image Preview

答えて

0

あなたはx軸の時間スケールを使用する必要があります。

「日」の軸では、あなたがd3.timeDayを使用して軸ジェネレータを設定することができます。

call(d3.axisBottom(x2) 
    .ticks(d3.timeDay.every(6)) 
    .tickFormat(d => d3.timeFormat("%d")(d))); 

そして、「月」軸に、あなたはダニのサイズを大きく:

call(d3.axisBottom(x) 
    .tickSizeInner(20) 
    .tickFormat(d3.timeFormat("%b %y"))); 

ここにありますあなたの更新されたコード:http://codepen.io/anon/pen/bqOPRg?editors=0010

私は6日に1つしか印刷していませんが、まだ "day"軸はひどく混み合っています。テキストサイズを小さくするか、ダニの数を減らすかはあなた次第です。

EDIT:OPはデータ配列に存在する値のみを表示するようにin the commentsを求めているので、ここでは別のCodePenがある:http://codepen.io/anon/pen/qrvdWq?editors=0010

+0

こんにちはそこに、そのためにあなたをとても感謝しています。私は何を表示する必要があります。唯一のことは、短軸(x2)では、間隔だけでなく、d.dateから実際の日付を表示する必要があることです。あなたはなにか考えはありますか? –

+0

これは実際の日付です。 –

+0

ええ、私は知っているけど、csvの実際の日付を表示する必要があります。毎月01,08,15,22,29のような範囲は表示されません。 –

関連する問題