d3.js-向堆积条形图中的一个条形添加不同的颜色

2023-12-04

我使用 d3.js 创建了堆积条形图。我想显示一个具有不同颜色的条形图,以突出显示特定 x 轴值的数据,如下所示。

enter image description here

我用来绘制堆积图的脚本如下:

// Set the dimensions of the canvas / graph
var svg = d3.select("#svgID"),
    margin = {top: 80, right: 140, bottom: 100, left: 100},
    width = +svg.attr("width") - margin.left - margin.right,
    height = +svg.attr("height") - margin.top - margin.bottom,
    g = svg.append("g").attr("transform", "translate(" + margin.left + "," + margin.top + ")");

var padding = -100;
//set the ranges
var x = d3.scaleBand()
    .rangeRound([0, width])
    .paddingInner(0.20)
    .align(0.1);

var y = d3.scaleLinear()
    .rangeRound([height, 0]);

var z = d3.scaleOrdinal()
    .range(["#008000", "#C00000", "#404040", "#4d4d4d"]);    

var data = $("#svgID").data("values");

var keys = ["Pass", "Fail", "Average", "Worst"];

var legendKeysbar = ["Pass", "Fail", "Average", "Worst"];
var legendColorsbar = d3.scaleOrdinal()
    .range(["#008000", "#C00000", "#404040", "#4d4d4d"]);

// Scale the range of the data
x.domain(data.map(function (d) {
    return d.year;
}));
y.domain([0, d3.max(data, function (d) {
    return d.total;
})]).nice();
z.domain(keys);

// add the Y gridlines
g.append("g").selectAll(".hline").data(y.ticks(10)).enter()
    .append("svg:line")
    .attr("x1", 0)
    .attr("y1", function(d){ return y(d);})
    .attr("x2", width)
    .attr("y2", function(d){ return y(d);})
    .style("stroke", "white")
    .style("stroke-width", 1);    

// append the rectangles for the bar chart
g.append("g")
    .selectAll("g")
    .data(d3.stack().keys(keys)(data))
    .enter().append("g")
    .attr("fill", function (d) {
        return z(d.key);
    })
    .selectAll("rect")
    .data(function (d) {
        return d;
    })
    .enter().append("rect")
    .attr("x", function (d) {
        return x(d.data.year);
    })
    .attr("y", function (d) {
        return y(d[1]);
    })
    .attr("height", function (d) {
        return y(d[0]) - y(d[1]);
    })

你能帮我更新单个条形的颜色吗? d3.js 可以吗


创建第二个色标,然后在分配颜色的方法中执行检查以确定要使用的色标,例如:

var z2 = d3.scaleOrdinal().range(<your color array here>)

...

   .attr("fill", function (d) {
        return d.data.year === "Dec" ? z2(d.key) : z(d.key);
    })
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

d3.js-向堆积条形图中的一个条形添加不同的颜色 的相关文章

随机推荐

  • Web浏览器打印后关闭应用程序

    我尝试使用 WebBrowser 类打印格式化的 HTML 打印后 我想关闭应用程序 如果我尝试关闭应用程序 则打印无法正常工作 我尝试使用计时器也没有效果 请找到下面的代码 static void Main string args var
  • SOLR 可以执行 UPSERT 吗?

    我一直在尝试在 solr 中执行相当于 UPSERT 如果已存在则插入或更新 的操作 我只知道什么不起作用 并且我读过的 solr lucene 文档没有帮助 这是我尝试过的 curl localhost 8983 solr update
  • SimpleDateFormat 字符串的正则表达式 [关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的日期主要有以下形式yyyy MM dd and yyyy MM dd hh mm ss 我想要模式匹配yyyy MM dd hh mm ss 为此目的编写正则表达式很简单吗 我是正
  • 如何在IE8中动态创建CSS类

    我需要在 IE8 中使用 JavaScript 动态创建 CSS 样式表类 我在其他浏览器中使用了以下代码 var style document createElement style style type text css style i
  • Flickr API iOS 应用程序“POST 大小太大!”

    我正在尝试使用 API 将照片从 iOS 应用程序发送到 Flickr 我已成功获得授权并准备好使用令牌 我通过 HTTP POST 发送照片数据 并遵循此处的格式指南 http www flickr com services api up
  • 故事板奇怪的控制器视图框架起源

    我在 Xcode s 故事板中遇到了一个奇怪的问题 我的板上有大量视图控制器 由于某种原因 它们所有视图的原点都不为 0 所有 x 原点都是 160 y 原点都是 240 所有视图看起来仍然位于左上角 奇怪的是 大多数视图控制器的子视图似乎
  • 将字符串字段值更改为其子字符串的最有效方法

    我有一个包含如下文档的集合 data 11 version 0 0 32 有些有test后缀为version data 55 version 0 0 42 test The version字段具有不同的值 但它始终符合以下模式 0 0 XX
  • Scrapy如何提取类内部属性中的文本?

    我有下面的 HTML 代码 div class hero data skills item hero data skills item passive J tooltip title div
  • 将文档预加载到 iOS 应用程序中

    情况 我有一个 iOS 应用程序 可以处理文件并允许用户保存 编辑 打开这些文件并执行各种操作 我希望能够有一些预制文档供用户在打开应用程序 例如模板 以及他们自己的自定义文档时查看 问题 如何创建文档 或模板文件 并在用户安装我的应用程序
  • 在微风中创建复杂类型的未绑定实例的正确方法是什么?

    想象一下以下模型 class ComplexTypeA public string ComplexPropertyA class ParentTypeA public string ParentPropertyA public Comple
  • 省略html的可选标签

    我刚刚读过本文来自谷歌 我一直认为结束标签对于保持 html 文档干净并使其机器可读非常重要 但他们建议相反 你怎么看待这件事 谷歌的情况有点不寻常 因为他们提供了太多的主要搜索页面副本 以至于页面大小的任何微小节省很快都会增加 这意味着对
  • plpgsql - 在声明语句中使用动态表名

    我正在尝试编写 plpgsql 一个以下形式的函数 注意这是一个简化版本 CREATE FUNCTION check valid tablename regclass RETURNS boolean AS DECLARE valid row
  • css3 比例周围的空白

    我有一个小问题想要解决 但找不到任何好的答案 当我在 div 包含其他 div 上使用比例时 它会在 div 的 原始 宽度和高度周围留下空白 如何在缩放时删除 div 周围的空白 如果需要的话我可以使用js 编辑 这是一些代码 HTML
  • 为什么 lea 指令只是执行算术运算,却以内存寻址命名? [复制]

    这个问题在这里已经有答案了 The lea指令 加载有效地址 获取第一个值的内存地址并将其与第二个值相加 第二个值可能会相乘 然后它将该内存地址加载到给定的寄存器中 我举个例子来澄清一下我的困惑 eax 2 leal eax eax 4 e
  • iOS7.0 和 iOS 7.1 不支持动态桌面视图高度

    我在 UITableViewCell 的各种实现中使用了自动布局 该方法是让固有大小定义大小 进而为 tableview 行提供高度 奇怪的是 在 UITableViewCell 中使用 Autolayout 来定位 iOS7 及更高版本并
  • Android SENSOR_DELAY_FASTEST 不够快

    我正在使用传感器来平衡机器人 但是SENSOR DELAY FASTEST只提供10Hz的采样率 这根本不够快 有没有更快的采样方法 有没有一种方法可以轮询传感器而不是等待SensorEvent 有没有更快的采样方法 SENSOR DELA
  • bash - 如何获取(当前)儒略日数?

    如何获得今天的儒略日数 JDN 相等的 或者任何日期 我看了又看 但只发现了一些产生 year dayOfYear 的函数 而不是类似 2457854 in bash date j返回儒略日期 root TX Serv 1 date j 1
  • 如何在 ASP.NET 中从 Exchange Web 服务托管 API 2.0 更新约会

    我使用 EWS 托管 API 2 0 创建约会 效果很好 但也想更新现有的约会 我读到我需要预约 ID 来指定应编辑哪个预约 但是身份证在哪里呢 这是我创建约会的方法 Creates the Appointment Dim appointm
  • Koha RESTful api

    我一直在互联网上查找有关 Koha ILS Restful api 的信息 但没有找到任何具体信息 这个链接讨论了它的 HTTP API http wiki koha community org wiki Koha svc HTTP API
  • d3.js-向堆积条形图中的一个条形添加不同的颜色

    我使用 d3 js 创建了堆积条形图 我想显示一个具有不同颜色的条形图 以突出显示特定 x 轴值的数据 如下所示 我用来绘制堆积图的脚本如下 Set the dimensions of the canvas graph var svg d3