Dimple x2 轴需要位置绑定到 x
Dimple x2 axis needs position bind to x
所以这个问题是关于辅助 X 轴和控件的,我需要正确地呈现我的图表。
我在堆积条形图上有 x、x2、y。
我正在尝试将 x2 系列文本内容置于顶部(成功)。
我需要绑定到 x2(似乎有效)的 x(按日期排序)。
现在我需要将 x2 直接对齐到 x 上。这是如何工作的?
代码如下:
<div id="chartContainer"></div>
<script type="text/javascript">
function svgBuild() {
var data = [
{'yrmo': '01-01-2014', 'prcnt':'24', 'halfit' : 'first', 'arbNmbr':'2400'},
{'yrmo': '02-01-2014', 'prcnt':'76', 'halfit' : 'first', 'arbNmbr':'2327'},
{'yrmo': '03-01-2014', 'prcnt':'31', 'halfit' : 'first', 'arbNmbr':'1900'},
{'yrmo': '04-01-2014', 'prcnt':'69', 'halfit' : 'first', 'arbNmbr':'2800'},
{'yrmo': '05-01-2014', 'prcnt':'20', 'halfit' : 'first', 'arbNmbr':'1780'},
{'yrmo': '06-01-2014', 'prcnt':'70', 'halfit' : 'first', 'arbNmbr':'1800'},
{'yrmo': '07-01-2014', 'prcnt':'28', 'halfit' : 'first', 'arbNmbr':'2000'},
{'yrmo': '08-01-2014', 'prcnt':'70', 'halfit' : 'first', 'arbNmbr':'1900'}];
//add property for first half (or put directly in data if possible)
data.forEach(function(row){
row.halfit = 'first';
});
//create second half
var opposites = data.map(function(row){
return { "yrmo" : row.yrmo,
"prcnt": (100 - Number(row.prcnt)),
"halfit" : "second",
"arbNmbr" : Number(row.arbNmbr)
};
});
var svg = dimple.newSvg("#chartContainer", 850, 400);
var myChart = new dimple.chart(svg, data.concat(opposites));
myChart.setBounds(65, 45, 800, 315);
var x = myChart.addCategoryAxis("x", "yrmo");
x.addOrderRule("yrmo", true);
var y = myChart.addPctAxis("y", "prcnt");
var x2 = myChart.addCategoryAxis("x", "arbNmbr");
x2.addOrderRule("yrmo", true);
myChart.addSeries("halfit", dimple.plot.bar);
myChart.addSeries("arbNmbr", dimple.plot.area, [x2,y]);
myChart.draw();
}
svgBuild();
</script>
答案在这里。
取:
myChart.addSeries("arbNmbr", dimple.plot.area, [x2,y]);
并将其更改为:
myChart.addSeries("arbNmbr", dimple.plot.area, [x,y]);
这对齐了我的 X 系列。
所以这个问题是关于辅助 X 轴和控件的,我需要正确地呈现我的图表。
我在堆积条形图上有 x、x2、y。
我正在尝试将 x2 系列文本内容置于顶部(成功)。
我需要绑定到 x2(似乎有效)的 x(按日期排序)。
现在我需要将 x2 直接对齐到 x 上。这是如何工作的?
代码如下:
<div id="chartContainer"></div>
<script type="text/javascript">
function svgBuild() {
var data = [
{'yrmo': '01-01-2014', 'prcnt':'24', 'halfit' : 'first', 'arbNmbr':'2400'},
{'yrmo': '02-01-2014', 'prcnt':'76', 'halfit' : 'first', 'arbNmbr':'2327'},
{'yrmo': '03-01-2014', 'prcnt':'31', 'halfit' : 'first', 'arbNmbr':'1900'},
{'yrmo': '04-01-2014', 'prcnt':'69', 'halfit' : 'first', 'arbNmbr':'2800'},
{'yrmo': '05-01-2014', 'prcnt':'20', 'halfit' : 'first', 'arbNmbr':'1780'},
{'yrmo': '06-01-2014', 'prcnt':'70', 'halfit' : 'first', 'arbNmbr':'1800'},
{'yrmo': '07-01-2014', 'prcnt':'28', 'halfit' : 'first', 'arbNmbr':'2000'},
{'yrmo': '08-01-2014', 'prcnt':'70', 'halfit' : 'first', 'arbNmbr':'1900'}];
//add property for first half (or put directly in data if possible)
data.forEach(function(row){
row.halfit = 'first';
});
//create second half
var opposites = data.map(function(row){
return { "yrmo" : row.yrmo,
"prcnt": (100 - Number(row.prcnt)),
"halfit" : "second",
"arbNmbr" : Number(row.arbNmbr)
};
});
var svg = dimple.newSvg("#chartContainer", 850, 400);
var myChart = new dimple.chart(svg, data.concat(opposites));
myChart.setBounds(65, 45, 800, 315);
var x = myChart.addCategoryAxis("x", "yrmo");
x.addOrderRule("yrmo", true);
var y = myChart.addPctAxis("y", "prcnt");
var x2 = myChart.addCategoryAxis("x", "arbNmbr");
x2.addOrderRule("yrmo", true);
myChart.addSeries("halfit", dimple.plot.bar);
myChart.addSeries("arbNmbr", dimple.plot.area, [x2,y]);
myChart.draw();
}
svgBuild();
</script>
答案在这里。
取:
myChart.addSeries("arbNmbr", dimple.plot.area, [x2,y]);
并将其更改为:
myChart.addSeries("arbNmbr", dimple.plot.area, [x,y]);
这对齐了我的 X 系列。