D3積み上げ棒グラフのデータを更新しています

ジェイコブ・ジョンソン

SVG内で更新したい新しいデータのセットがありますが、スムーズに移行しながら、データを置き換えた要素を正しく取得する方法がよくわかりません。

http://codepen.io/jacob_johnson/pen/jAkmPG

関連するすべてのコードは上記のCodePenにあります。ただし、その一部をここに投稿します。

// Array to supply graph data
var FOR_PROFIT = [10,80,10];
var NONPROFIT = [60,10,30];
var PUBLIC = [40,40,20];

var data = [
            {
        "key":"PUBLIC",
        "pop1":PUBLIC[0],
        "pop2":PUBLIC[1],
        "pop3":PUBLIC[2]
      },
            {
        "key":"NONPROFIT",
        "pop1":NONPROFIT[0],
        "pop2":NONPROFIT[1],
        "pop3":NONPROFIT[2]
      },
            {
        "key":"FORPROFIT",
        "pop1":FOR_PROFIT[0],
        "pop2":FOR_PROFIT[1],
        "pop3":FOR_PROFIT[2]
      }
];

2つのデータ配列があります(1つはdataと呼ばれ、もう1つは情報が変更されたdata2と呼ばれます)。基本的に、作成したグラフを新しいデータに移行したいと思います。古いグラフの上にグラフを書き直すのに十分理解していますが、遷移が発生せず、明らかに、持っているものを変更するのではなく、古いデータの上に新しいデータを印刷しているだけです。

var n = 3, // Number of layers
        m = data.length, // Number of samples per layer
        stack = d3.layout.stack(),
        labels = data.map(function(d) { return d.key; }),       
        layers = stack(d3.range(n).map(function(d)
        { 
            var a = [];
            for (var i = 0; i < m; ++i)
            {
                a[i] = { x: i, y: data[i]['pop' + (d+1)] };  
            }
            return a;
        })),
        // The largest single layer
        yGroupMax = d3.max(layers, function(layer) { return d3.max(layer, function(d) { return d.y; }); }),
        // The largest stack
        yStackMax = d3.max(layers, function(layer) { return d3.max(layer, function(d) { return d.y0 + d.y; }); });

    var margin = {top: 40, right: 10, bottom: 20, left: 150},
        width = 677 - margin.left - margin.right,
        height = 212 - margin.top - margin.bottom;

    var y = d3.scale.ordinal()
        .domain(d3.range(m))
        .rangeRoundBands([2, height], .08);

    var x = d3.scale.linear()
        .domain([0, yStackMax])
        .range([0, width]);

    var color = d3.scale.linear()
        .domain([0, n - 1])
        .range(["#aad", "#556"]);

    var svg = d3.select("svg")
        .attr("width", width + margin.left + margin.right)
        .attr("height", height + margin.top + margin.bottom)
        .append("g")
        .attr("transform", "translate(" + margin.left + "," + margin.top + ")");

    var layer = svg.selectAll(".layer")
        .data(layers)
        .enter().append("g")
        .attr("class", "layer")
        .style("fill", function(d, i) {
            return color(i);
        });

    layer.selectAll("rect")
        .data(function(d) {
            return d;
        })
        .enter().append("rect")
        .attr("y", function(d) {
            return y(d.x);
        })
        .attr("x", function(d) {
            return x(d.y0);
        })
        .attr("height", y.rangeBand())
        .attr("width", function(d) {
            return x(d.y);
        });

これは、レイヤーが個々のバーであるグラフの作成を処理しているものです。今私はこれを見ました:https//bl.ocks.org/mbostock/1134768しかし、それはあまりよくコメントされていないので、私はまだ理解していません。

これに関するガイダンス、リンク、またはヘルプは素晴らしいでしょう。ありがとう。

タイフォン

あなたの解決策:http//codepen.io/typhon/pen/bZLoZW

お役に立てれば!!

duration(500)行200で渡されるパラメーターを増やすことにより、遷移の速度を遅くすることができます(またはその逆)。

更新を読み、選択内容を入力および終了します。D3での作業中は、ほとんどの場合便利です。テイクこれを参考のために。

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

D3積み上げ棒グラフのデータの形状を変更する

分類Dev

d3を使用した積み上げ棒グラフのすべての長方形の先端にある積み上げ棒の全高

分類Dev

D3: 積み上げ棒グラフ exit().remove() が棒を削除しない

分類Dev

D3で積み上げ棒グラフをスケーリングしますか?

分類Dev

d3selection.joinを使用して積み上げ棒グラフを更新します

分類Dev

積み上げ棒グラフから棒グラフへのD3遷移は、初めてのみ機能します

分類Dev

積み上げ棒グラフを更新するD3.js

分類Dev

同じデータセットを使用してPlottable.js積み上げ棒グラフを作成します

分類Dev

D3積み上げ棒グラフ構造について

分類Dev

データフレームデータから積み上げ棒グラフを作成しようとしています

分類Dev

d3積み上げ面グラフのツールチップに選択されていないパスの値を表示しますか?

分類Dev

文字列データにC3を使用して積み上げ棒グラフを作成するにはどうすればよいですか?

分類Dev

積み上げ棒グラフの更新をアニメーション化するD3.js

分類Dev

ggplotは、データフレームの値に基づいて積み上げ棒グラフを並べ替えます

分類Dev

D3水平積み上げ棒グラフの軸が切り取られました

分類Dev

積み上げ面グラフD3に線を追加します

分類Dev

R ggplot2 を使用して非数値データから積み上げ棒グラフを作成する

分類Dev

型にはまらないデータセットを含むExcelの積み上げ縦棒グラフ

分類Dev

d3.jsは、オブジェクトの値から積み上げ棒グラフを作成します

分類Dev

積み上げ棒グラフラベル-D3

分類Dev

棒の色ごとに積み上げ棒グラフを生成します

分類Dev

クロスフィルターの積み上げ棒グラフは値を否定します

分類Dev

matplotlibの積み上げ棒グラフを動的に更新する

分類Dev

d3遷移積み上げ棒グラフ

分類Dev

chat、js積み上げ棒グラフ(1つのデータセットを積み上げに作成)

分類Dev

時系列データを含む積み上げ棒グラフ

分類Dev

D3の積み上げ棒グラフのY値と高さの値

分類Dev

グラフの1行に複数行のデータをまとめて表示する積み上げ棒グラフ

分類Dev

d3積み上げ棒グラフの値がグラフに表示されない

Related 関連記事

  1. 1

    D3積み上げ棒グラフのデータの形状を変更する

  2. 2

    d3を使用した積み上げ棒グラフのすべての長方形の先端にある積み上げ棒の全高

  3. 3

    D3: 積み上げ棒グラフ exit().remove() が棒を削除しない

  4. 4

    D3で積み上げ棒グラフをスケーリングしますか?

  5. 5

    d3selection.joinを使用して積み上げ棒グラフを更新します

  6. 6

    積み上げ棒グラフから棒グラフへのD3遷移は、初めてのみ機能します

  7. 7

    積み上げ棒グラフを更新するD3.js

  8. 8

    同じデータセットを使用してPlottable.js積み上げ棒グラフを作成します

  9. 9

    D3積み上げ棒グラフ構造について

  10. 10

    データフレームデータから積み上げ棒グラフを作成しようとしています

  11. 11

    d3積み上げ面グラフのツールチップに選択されていないパスの値を表示しますか?

  12. 12

    文字列データにC3を使用して積み上げ棒グラフを作成するにはどうすればよいですか?

  13. 13

    積み上げ棒グラフの更新をアニメーション化するD3.js

  14. 14

    ggplotは、データフレームの値に基づいて積み上げ棒グラフを並べ替えます

  15. 15

    D3水平積み上げ棒グラフの軸が切り取られました

  16. 16

    積み上げ面グラフD3に線を追加します

  17. 17

    R ggplot2 を使用して非数値データから積み上げ棒グラフを作成する

  18. 18

    型にはまらないデータセットを含むExcelの積み上げ縦棒グラフ

  19. 19

    d3.jsは、オブジェクトの値から積み上げ棒グラフを作成します

  20. 20

    積み上げ棒グラフラベル-D3

  21. 21

    棒の色ごとに積み上げ棒グラフを生成します

  22. 22

    クロスフィルターの積み上げ棒グラフは値を否定します

  23. 23

    matplotlibの積み上げ棒グラフを動的に更新する

  24. 24

    d3遷移積み上げ棒グラフ

  25. 25

    chat、js積み上げ棒グラフ(1つのデータセットを積み上げに作成)

  26. 26

    時系列データを含む積み上げ棒グラフ

  27. 27

    D3の積み上げ棒グラフのY値と高さの値

  28. 28

    グラフの1行に複数行のデータをまとめて表示する積み上げ棒グラフ

  29. 29

    d3積み上げ棒グラフの値がグラフに表示されない

ホットタグ

アーカイブ