入力からのパーセンテージ値に基づいてバブルに色を割り当てます

イェシャ

入力からの「admit_probability」に基づいて、さまざまなバブルに色を割り当てる必要があるバブルチャートがあります。「赤」から「青」までの4つの異なる範囲を使用し、admit_probailitesは0から100の範囲にあるため、admit_probabilityが低いバブルは「赤」、高いバブルは「青」の色になるように色を割り当てたいと思います。色が徐々に変化します。

以下は私のデータです:

var data = [{name: "A", rank: 1, student_percentile: 100.0, 
     admit_probability: 24},
    {name: "B", rank: 45, student_percentile: 40.3, 
     admit_probability: 24},
    {name: "C", rank: 89, student_percentile: 89.7, 
     admit_probability: 24},
    {name: "D", rank: 23, student_percentile: 10.9, 
     admit_probability: 24},
    {name: "E", rank: 56, student_percentile: 30.3, 
     admit_probability: 24},
     {name: "F", rank: 34, student_percentile: 110, 
     admit_probability: 84}];


var color_range = ['#FF0000', '#FFFF00' ,'#008000', '#0000FF'];
var color = d3.scaleLinear()
                .domain([0, d3.max(data, function (d) {
                return +d.admit_probability;
            })])
            .range(color_range);

circles = svg.selectAll("circle")
      .data(data)
      .enter()
      .append("circle")
      .attr("opacity", 0.3)
      .attr("r", 20)
      .style("fill", function(d, i){
            return color(i);
      });

上記のコードを使用すると、赤い色の異なる色合いのみが表示され、緑、黄色、または青の色の泡は形成されません。問題を見つけることができません。

PS:私は次の解決策を使いたくありません:

function(d){
            if(+d.admit_probability <= 40){
                return "red";
            }
            else if(+d.admit_probability > 40 && +d.admit_probability <= 75){
                return "yellow";
            }
            else{
                return "green";
            }
      }
アンドリューリード

線形目盛は、範囲内の値の間を補間します。しきい値スケールが必要です。

しきい値スケールは、ドメインの任意のサブセットを範囲内の離散値にマップできることを除いて、量子化スケールに似ています。入力ドメインは引き続き継続的であり、一連のしきい値に基づいてスライスに分割されます(APIドキュメント

これは次のようになります。

var color = d3.scaleTreshold()
                .domain(thresholds)
                .range(colors)

ここで、thresholdsはしきい値を保持する配列であり、colorsは色を保持する配列(この場合)です。2つのしきい値を持つ非常に基本的なしきい値グラフを想定すると、3つの色が必要になります。1つは最初のしきい値より下、1つは2つのしきい値の間、もう1つは2番目のしきい値より上です。

4色のデータの場合、次のような3つのしきい値が必要になります(2番目のコードブロックには2つしかないため、しきい値が何であるかはわかりません)。

var color = d3.scaleThreshold()
                .domain([40,75,90])
                .range(["red","yellow","green","blue"]);

値最大40は、それらの赤どこにある90以上のものは青色であるが、イエロー75、75及び90緑色までにわたるものと40とアップ。

例:

var data = d3.range(100);

var color = d3.scaleThreshold()
  .domain([40,75,90])
  .range(["red","yellow","green","blue"]);
  
var svg = d3.select("body")
  .append("svg")
  .attr("width",400)
  .attr("height",200);
  
var rects = svg.selectAll("rect")
  .data(data)
  .enter()
  .append("rect")
  .attr("height",10)
  .attr("width",10)
  .attr("y",function(d,i) { return Math.floor(i/10) * 12 + 10; })
  .attr("x",function(d,i) { return i%10 * 12 + 10; })
  .attr("fill", function(d) { return color(d); })
  
  
  
  
                    
    
<script src="https://cdnjs.cloudflare.com/ajax/libs/d3/4.10.0/d3.min.js"></script>

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

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

編集
0

コメントを追加

0

関連記事

分類Dev

Angularjsの入力フィールドに基づいてパーセンテージを計算します

分類Dev

javascript配列のパーセンテージに基づいてカテゴリを割り当てます

分類Dev

PYTHON-パーセンテージに基づいて色の値をシフト-緑から赤

分類Dev

パーセンテージ値に基づいて2つの色の間を補間します

分類Dev

条件に基づいてテーブルBからテーブルAに値を入力する方法

分類Dev

列の条件に基づいてグループに値(構成テーブルからのステム)を割り当てます

分類Dev

条件に基づいてHTMLテーブルの列に色を割り当てる

分類Dev

ブール値に基づいて、配列から時計回りに要素をコンテナに割り当てます

分類Dev

ユーザーの役割に基づいて、WooCommerceの支払い方法にパーセンテージ料金を割り当てます

分類Dev

パンダは、行の他のセルの値に基づいてセルに値を割り当てます

分類Dev

入力された値に基づいて、テーブル内の最小の概算値(前)またはそれより高い(後)をもたらします

分類Dev

IDに基づいてjsonから特定のテーブルに値配列を割り当てる方法

分類Dev

Jqueryでは、入力値のパーセンテージに基づいて料金を計算するための最良の方法は何ですか

分類Dev

argparseモジュールを使用して入力した引数に基づいてテーブルを表示する別の方法はありますか?

分類Dev

パンダの別の列に関連付けられた値に基づいて列にデータを入力する方法はありますか?

分類Dev

パーセンテージに基づいてarraylistから値を選択します

分類Dev

Excel の別のテーブルに基づいて値を入力する

分類Dev

Javaでのスキャナー入力に基づいて列挙値を文字列に割り当てます

分類Dev

パーセンテージに基づいてSVG円を下から上に塗りつぶす色を作成することは可能ですか?

分類Dev

辞書からのパーセンテージに基づいてオプションを選択します

分類Dev

パンダを使用してルックアップテーブルに基づいて列に値を割り当てます

分類Dev

フォントの色に基づいてセルをコピーして貼り付け、相対的な位置に基づいて値を貼り付けます

分類Dev

サブジェクト番号に基づいて、あるデータフレームから別のデータフレームに値を割り当てます

分類Dev

インデックスのベクトルに基づいて、特定のデータテーブルの行番号に値を効率的に割り当てます

分類Dev

別のテーブルに基づいてIDを入力します

分類Dev

別のテーブルに基づいてIDを入力します

分類Dev

入力フィールドに入力された数値に基づいてtdセルの色を変更します

分類Dev

条件に基づいてパンダシリーズの値を割り当てますか?

分類Dev

セル値に基づいてPHPのセルテーブルの色をどのように変更しますか?

Related 関連記事

  1. 1

    Angularjsの入力フィールドに基づいてパーセンテージを計算します

  2. 2

    javascript配列のパーセンテージに基づいてカテゴリを割り当てます

  3. 3

    PYTHON-パーセンテージに基づいて色の値をシフト-緑から赤

  4. 4

    パーセンテージ値に基づいて2つの色の間を補間します

  5. 5

    条件に基づいてテーブルBからテーブルAに値を入力する方法

  6. 6

    列の条件に基づいてグループに値(構成テーブルからのステム)を割り当てます

  7. 7

    条件に基づいてHTMLテーブルの列に色を割り当てる

  8. 8

    ブール値に基づいて、配列から時計回りに要素をコンテナに割り当てます

  9. 9

    ユーザーの役割に基づいて、WooCommerceの支払い方法にパーセンテージ料金を割り当てます

  10. 10

    パンダは、行の他のセルの値に基づいてセルに値を割り当てます

  11. 11

    入力された値に基づいて、テーブル内の最小の概算値(前)またはそれより高い(後)をもたらします

  12. 12

    IDに基づいてjsonから特定のテーブルに値配列を割り当てる方法

  13. 13

    Jqueryでは、入力値のパーセンテージに基づいて料金を計算するための最良の方法は何ですか

  14. 14

    argparseモジュールを使用して入力した引数に基づいてテーブルを表示する別の方法はありますか?

  15. 15

    パンダの別の列に関連付けられた値に基づいて列にデータを入力する方法はありますか?

  16. 16

    パーセンテージに基づいてarraylistから値を選択します

  17. 17

    Excel の別のテーブルに基づいて値を入力する

  18. 18

    Javaでのスキャナー入力に基づいて列挙値を文字列に割り当てます

  19. 19

    パーセンテージに基づいてSVG円を下から上に塗りつぶす色を作成することは可能ですか?

  20. 20

    辞書からのパーセンテージに基づいてオプションを選択します

  21. 21

    パンダを使用してルックアップテーブルに基づいて列に値を割り当てます

  22. 22

    フォントの色に基づいてセルをコピーして貼り付け、相対的な位置に基づいて値を貼り付けます

  23. 23

    サブジェクト番号に基づいて、あるデータフレームから別のデータフレームに値を割り当てます

  24. 24

    インデックスのベクトルに基づいて、特定のデータテーブルの行番号に値を効率的に割り当てます

  25. 25

    別のテーブルに基づいてIDを入力します

  26. 26

    別のテーブルに基づいてIDを入力します

  27. 27

    入力フィールドに入力された数値に基づいてtdセルの色を変更します

  28. 28

    条件に基づいてパンダシリーズの値を割り当てますか?

  29. 29

    セル値に基づいてPHPのセルテーブルの色をどのように変更しますか?

ホットタグ

アーカイブ