该数据结构并不适合您在凹坑内的数据要求。凹坑想要的数据方式是将索引名称作为维度值:
var data = [
{ "Index" : "Index 1", "Country" : "UK", "Index Value": 0.2 },
{ "Index" : "Index 1", "Country" : "Spain", "Index Value": 0.7 },
{ "Index" : "Index 2", "Country" : "UK", "Index Value": 0.5 },
{ "Index" : "Index 2", "Country" : "Spain", "Index Value": 0.6 },
{ "Index" : "Index 3", "Country" : "UK", "Index Value": 0.4 },
{ "Index" : "Index 3", "Country" : "Spain", "Index Value": 0.3 },
...
];
然后,为了将索引 1 绘制为条形图,将其余的绘制为线形,您需要将数据集拆分为 2 个:
var barData = [],
lineData = [],
i,
keyIndex = "Index 1";
for (i = 0; i < data.length; i += 1) {
if (data[i]["Index"] === keyIndex) {
barData.push(data[i]);
} else {
lineData.push(data[i]);
}
}
然后您可以按如下方式定义图表:
var chart = new dimple.chart(svg),
bars,
lines;
chart.addMeasureAxis("x", "Index Value");
chart.addCategoryAxis("y", "Country");
bars = chart.addSeries("Index", dimple.plot.bar);
bars.data = barData;
lines = chart.addSeries("Index", dimple.plot.line);
lines.data = lineData;
chart.draw();
我还没有测试过这段代码,但它应该可以做你想要的事情(减去格式等)。
如果您想继续在上面的代码中开始的道路(这仍然是可能的),您会发现复合轴非常有助于避免隐藏的辅助轴和不同最大/最小值的潜在问题。请参阅中的相关部分版本 2 发行说明 https://github.com/PMSI-AlignAlytics/dimple/releases/tag/2.0.0举个例子。
我不明白为什么您不想用工具提示中出现的内容来标记索引,它们之间一定存在一些您可以交流的差异,但如果您想从工具提示中删除索引名称,您可以定义自定义工具提示如图所示here http://dimplejs.org/adhoc_viewer.html?id=adhoc_bar_custom_tooltips.
编辑:我应该添加,如果您只想更改凹坑将任意归因于您的数据点的颜色集,您可以覆盖图表对象中的默认颜色,如上所述here https://github.com/PMSI-AlignAlytics/dimple/wiki/dimple.chart#defaultColors.