javascript - 使用 d3.js 根据数据值着色 svg 元素

标签 javascript html css d3.js svg

我想知道如何根据数据集中的值为 svg 矩形着色?如果我为每个数据条目绘制矩形,我如何根据数据值修改矩形的颜色?

到目前为止我有:

         //Make an SVG Container
        var svgContainer = d3.select("body").selectAll("svg")
                                 .data(data)
                                 .enter().append("svg")
                                 .attr("width", 38)
                                 .attr("height", 25);

    //Draw the rectangle
     var rectangle = svgContainer.append("rect")
                    .attr("x", 5)
                     .attr("y", 5)
                     .attr("width", 38)
                     .attr("height", 25)
                      //want to color here based on data points, I want the data values to make my rectangles different shades of red
                    .style("fill", d3.rgb("red").darker(.data(data));

假设我的数据如下:

var 数据 = [{一:420, 二:222, 三:332},...];我只希望“两个”值影响矩形的颜色

最佳答案

如果你想使用一些特定的颜色代码,那么下面的例子会有所帮助。

  • d3 色阶 d3.scale.category10()包含20种颜色
  • 创建一个颜色池并在代码中使用
  • 根据值选择颜色

var rectangle = svgContainer.selectAll("rect") .data(data).enter() .append("rect") .attr("x", function(d,i){ return 40*i}) .attr("y", 5) .attr("width", 38) .attr("height", 25) .style("fill", function(d){ return d.Two <= 222 ? 'red' : 'green' });

Live Example

关于javascript - 使用 d3.js 根据数据值着色 svg 元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39584018/

相关文章:

css - 以 Twitter Bootstrap 为中心的登录表单

php - 使用 Ajax 动态从数据库获取数据,无需刷新间隔

javascript - 重新创建具有相同权限的 channel

javascript - 在初始折叠 TreeView css 表

html - CSS parent 知道堆叠的 child

javascript - 在javascript中选择下拉列表时如何显示加载图像

html - 包含 float 元素的父元素没有背景

css - 使用 CSS 布局字段

jquery - 如果在视口(viewport)中不可见,则使用 JQuery 更改 div 元素的位置

javascript - 如何中止脚本加载