【发布时间】:2015-10-26 11:38:42
【问题描述】:
为什么所有 dc.js 图表都是蓝色的?我该如何改变它?浏览了 dc.css,没有看到那里有太多的蓝色使用!
我尝试更改不少的fill 属性。我唯一成功的是条形图。饼图仍然没有线索。
【问题讨论】:
标签: javascript graph colors dc.js crossfilter
为什么所有 dc.js 图表都是蓝色的?我该如何改变它?浏览了 dc.css,没有看到那里有太多的蓝色使用!
我尝试更改不少的fill 属性。我唯一成功的是条形图。饼图仍然没有线索。
【问题讨论】:
标签: javascript graph colors dc.js crossfilter
dc.js 中的颜色(通常在 d3 中经常出现)是根据数据动态计算的,这就是为什么您通常不会在 CSS 中找到它们的原因。这需要一些时间来适应。
在条形图的情况下,颜色基于堆栈号。在饼图中,它们基于饼图。
然后他们通过 d3 比例来分配实际颜色。通常,您希望使用chart.ordinalColors 将色标替换为您自己的颜色。
所以,例如使用 colorbrewer 调色板之一:
chart.ordinalColors(['#e41a1c','#377eb8','#4daf4a','#984ea3','#ff7f00','#ffff33','#a65628']);
同样,由于 colorbrewer 调色板包含在 D3v4+ 中:
chart.ordinalColors(d3.schemeSet1);
(Lots of wonderful color schemes in d3-scale-chromatic.)
在下面,ordinalColors 正在这样做:
chart.colors(d3.scaleOrdinal().range(d3.schemeSet1));
因此,如果您想控制颜色的顺序,您也可以指定域:
chart.colors(d3.scaleOrdinal().domain([5,4,3,2,1]).range(d3.schemeSet1));
【讨论】: