首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何使用彩色啤酒秤

如何使用彩色啤酒秤
EN

Stack Overflow用户
提问于 2016-10-30 12:20:19
回答 1查看 2.8K关注 0票数 4

我有以下几点:

代码语言:javascript
复制
<script src="http://colorbrewer2.org/export/colorbrewer.js"></script>
...
...
var colorScale = d3.scale.quantize()
        .range(colorbrewer.YlGnBu[9]);
...
...
colorScale.domain([0,layers.length]);
console.log(layers.length)   //<<< this returns 8

整张图表都是黑色的--为什么没有使用彩色酿酒机的颜色?

更新

这是一个完整的工作(黑色!)示例:

https://plnkr.co/edit/JqL0rYIjhZz9gf6102j7?p=preview

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-10-30 12:33:01

一种可能是在引用中将http更改为https,或者更改引用本身(我将得到一个与src的“连接超时”):

代码语言:javascript
复制
<script src="https://d3js.org/colorbrewer.v1.min.js"></script>

除此之外,Brewer刻度只是一个数组,它用于在任何其他D3刻度中使用数组。

这是一个工作演示。首先,我们设定了规模:

代码语言:javascript
复制
var colorScale = d3.scale.quantize()
    .range(colorbrewer.YlGnBu[9])
    .domain([0,9]);

相当于:

代码语言:javascript
复制
var colorScale = d3.scale.quantize()
    .range(["#ffffd9","#edf8b1","#c7e9b4","#7fcdbb",
            "#41b6c4","#1d91c0","#225ea8","#253494","#081d58"])
    .domain([0,9]);

然后我们用它来给圆圈上颜色:

代码语言:javascript
复制
.attr("fill", function(d){ return colorScale(d)});

查看演示:

代码语言:javascript
复制
var dataset = d3.range(9);
var colorScale = d3.scale.quantize()
    .range(colorbrewer.YlGnBu[9])
    .domain([0, 9]);

var svg = d3.select("body")
    .append("svg");

var circles = svg.selectAll(".circles")
    .data(dataset)
    .enter()
    .append("circle");

circles.attr("cy", 50)
    .attr("cx", function(d) {
        return 50 + d * 20
    })
    .attr("r", 10)
    .attr("fill", function(d) {
        return colorScale(d)
    });
代码语言:javascript
复制
<script src="https://d3js.org/d3.v3.min.js"></script>
<script src="https://d3js.org/colorbrewer.v1.min.js"></script>

编辑:你的柱塞中的条子是黑色的是有原因的。您将colorScale定义为量化:

代码语言:javascript
复制
var colorScale = d3.scale.quantize()
    .range(colorbrewer.YlGnBu[9])
    .domain([0, 8]);

但是,稍后,您将它设置为一个定性域!

代码语言:javascript
复制
  colorScale.domain(layers.map(function(layer) {
       return layer.key;
  }));

这根本行不通!根据API (重点挖掘):

量化尺度是线性尺度的一个变体,具有离散的而不是连续的范围。输入域仍为连续,并根据输出范围(基数)中的值数将其划分为均匀段。

因此,你必须决定你想要什么。这是一个具有序号的柱塞:https://plnkr.co/edit/qYi0y4A49UIDawZBr5kF?p=preview

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/40328984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档