2015-12-16 66 views
1

我创建了一个包含约10个项目的简单饼图(使用C3.js和D3.js)。现在,在第二个可视化(表格)中,我想知道每个项目的颜色,也可以在表格中表示它们。用C3.js查询图表

是否可以通过查询图表以获取该物品的名称和颜色

我知道我可以手动hardcode colors的项目,只是使用相同的颜色。然而,这不适用于我的情况,因为饼图中的项目差异很大(我还不知道它们,因为它取决于用户),因此我的问题。

+2

它可能是使用[D3的色阶]之一(https://github.com/mbostock/d3/wiki/Ordinal-Scales#category10)。 –

+0

非常好的一点,谢谢。可能是'd3.scale.category10',因为我将图表限制为10个项目。问题是,它似乎随机使用这些颜色,而不是总是相同的顺序... – casaout

+0

第一种颜色将被映射到第一个数据等等。它应该是关于数据顺序的确定性。 –

回答

1

快速查看源代码显示你是正确的,这是一个category10()

columns: [ 
    ['data1', 30, 200, 100, 400, 150, 250], //<-- data1 is id 
    ['data2', 130, 340, 200, 500, 250, 350] 
] 

您可以检查它们的使用:

而且它用的“数据ID”的关键,这似乎是第一个“列”在它的数据输入格式检索它们

> chart.internal.color('data1') 
    "#1f77b4" 
> chart.internal.color('data2') 
    "#ff7f0e" 
+0

很酷,谢谢! – casaout