我使用DimpleJS渲染BubblePlot。我的数据如下:
[
{type: "A", name:"First", x:1, y:200},
{type: "A", name:"Second", x:30, y:10},
{type: "B", name:"Third", x:50, y:120},
{type: "B", name:"Fifth", x:90, y:100}
]
使用以下代码创建图表:
var myChart = new dimple.chart(svg, chartData);
myChart.setBounds(50, 30, 370, 230);
var x = myChart.addMeasureAxis("x", "x");
var y = myChart.addMeasureAxis("y", "y");
var series = myChart.addSeries(["type", "name"], dimple.plot.bubble);
myChart.addLegend(10, 10, 360, 20, "right");
myChart.draw();
这几乎可以满足我的需求,工具提示等中提供了所有数据。但着色基于type
和name
。
同样不幸的是,图例还会从name
字段中选取所有值,我希望只看到图例中的type
值。
我还尝试使用addColorAxis
这样的方法:
var c = myChart.addColorAxis("type");
var series = myChart.addSeries("name", dimple.plot.bubble);
但这会产生黑色气泡,显示" NaN"如工具提示中的type
并将其放入图例中似乎也不可能。
欢迎任何建议!
答案 0 :(得分:0)
事实证明,系列中参数的顺序很重要。
这解决了我的问题:
var myChart = new dimple.chart(svg, chartData);
myChart.setBounds(50, 30, 370, 230);
var x = myChart.addMeasureAxis("x", "x");
var y = myChart.addMeasureAxis("y", "y");
var series = myChart.addSeries(["name","type"], dimple.plot.bubble);
myChart.addLegend(10, 10, 360, 20, "right");
myChart.draw();