使用相同的数据集创建Plottable.js堆叠条形图
Create Plottable.js stacked bar chart using the same dataset
我试图从相同的数据集使用plottable.js创建堆叠条形图。这可能吗?
这是我的样本数据集
var data = [{ x: 0, y: 1, m: 10 },
{ x: 1, y: 1, m: 9 },
{ x: 2, y: 3, m: 5 },
{ x: 3, y: 2, m: 5 },
{ x: 4, y: 4, m: 8 },
{ x: 5, y: 3, m: 7 },
{ x: 6, y: 5, m: 5 }];
在http://plottablejs.org/components/plots/stacked-bar/上发布的示例中,它使用了两个数据集。
var plot = new Plottable.Plots.StackedBar()
.addDataset(new Plottable.Dataset(primaryData).metadata(5))
.addDataset(new Plottable.Dataset(secondaryData).metadata(3))
.x(function(d) { return d.x; }, xScale)
.y(function(d) { return d.y; }, yScale)
.attr("fill", function(d, i, dataset) { return dataset.metadata(); }, colorScale)
.renderTo("svg#example");
我的问题是,因为我使用相同的数据集,我需要将'y'函数更改为两个不同的函数,如下所示:
.y(function(d) { return d.y; }, yScale)
.y(function(d) { return d.m; }, yScale)
有可能吗?如果是,怎么做?
谢谢…
您可以基于相同的数据创建两个不同的Plottable.Dataset
。
所以像这样开始:
var ds1 = new Plottable.Dataset(data);
var ds2 = new Plottable.Dataset(data);
但是,稍后您需要区分两个数据集以知道使用哪个属性,因此您应该添加元数据
var ds1 = new Plottable.Dataset(data, {name: "ds1"});
var ds2 = new Plottable.Dataset(data, {name: "ds2"});
现在稍后,您可以引用数据集的名称,以知道在.y()调用
中返回哪个值。plot.y(function(d, i, ds){
if(ds.metadata().name == "ds1"){
return d.y;
}
else{
return d.m;
}
}, yScale);
相关文章:
- 可以't让我的if语句处理js中的html表单输入
- 使用agility.js进行页面布局和合成
- 使用Clipboard.js复制span文本
- 使用JS如何动态更改显示的html文件中的文本背景颜色
- 强制模板刷新ember.js
- 如何编写HTML输入的JS内联
- Angular JS IE9 Hashbang url rewriting
- 使用JS将数组转换为json对象
- Node.js v6.2.0类扩展不是函数错误
- 当js函数's已执行
- 如何在Javascript Plottable.js下使用独立比例制作两个直方图
- plottable.js折线图中的自定义动画
- 如何在Plottable.js/D3.js制作的饼图中启用qtip2
- 如何在Plottable.js饼图标签中将数字精度格式化为两位小数
- 如何在Plottable.js多重绘图中显示图例
- 如何使用Plottable.js创建饼状图
- 使用相同的数据集创建Plottable.js堆叠条形图
- 如何在Plottable.js中调整图表大小
- 如何在Plottable.js中启用图例直方图
- 在时间轴上的条形图与plottable.js -条形位置