2017-11-03 12 views
0

を表示しません。私が持っている例は、さまざまな例の異なるものを組み合わせたものです。これは、軸を下と左に持つ水平のチャートを意味します。積み上げ棒グラフは、私がここにplunkerを持って正しく

どこに間違っているのかアドバイスをいただけますか?あなたのdateキー/値のペアを考える

let layer = this.svg.selectAll(".layer") 
    .data(layers) 
    .enter().append("g") 
    .attr("class", "layer") 
    .style("fill", (d, i) => { 
     return colorFn(i); 
    }); 

    layer.selectAll("rect") 
    .data((d) => { return d; }) 
    .enter().append("rect") 
    .attr("y", (d) => { return this.yScale(this.parseDate(d.data.date)); }) 
    .attr("x", (d) => { return this.xScale(d[0]); }) 
    .attr("height", this.yScale.bandwidth()) 
    .attr("width", (d) => { return this.xScale(d[1]) - this.xScale(d[0]) }); 
+0

最終製品がどのように見えるのかはっきりしていませんが、軸の問題は簡単です:xAxisを2回呼び出して、 '.call(this.yAxis)'を決して提供していません。これを加えると、y軸が元に戻ります。また、翻訳された 'g'要素ではなく、グラフ要素を直接svg要素に追加して、軸を重ねるようにしています。 –

答えて

1

...

date: "2014" 

...あなたの指定が正しくありません。それは次のようになります。https://plnkr.co/edit/k8aZSlyCCtpWArOO0mki?p=preview

PS:

ここ
d3.timeParse("%Y"); 

が更新plunkerあるあなたも、日付を解析する必要はありません。あなたのyスケールはカテゴリ変数を使用するので、現在の日付、つまり単純な文字列をそのまま使用してください。

+0

グラフを水平から垂直に変えるにはどのような方法が最適ですか?私は今、下のx軸に沿った日付と積み重ねられたグラフを垂直にする必要があります。私はxScaleとyScaleを交換しようとしましたが動作しません - https://plnkr.co/edit/ggPXzhZFotS9oviaCafr?p=preview – ttmt

+1

それは簡単ではありません。また、これはあなたの問題に関連していないので、新しい質問として投稿することをお勧めします。 –

関連する問題