我对 SAPUI5 框架的 VizFrame 控件有问题。我想在带有两个 Y 轴的复杂图表中显示一些数据。我的数据模型如下所示:
{
"d" : {
"results" : [
{
"DataA" : "2",
"DataB" : "4",
"Id" : "1",
},
{
"DataA" : "3",
"DataB" : "2",
"Id" : "2",
}
]
}
}
我尝试在左侧 Y 轴上显示 DataA,在右侧显示 DataB,同时将 Id 用于 X 轴。这对 VizFrame 类型没有问题: dual_line 和 dual_column 。我还没有找到将数据显示为条形(Y1 上的 DataA)和线(Y2 上的 DataB)的方法。我当前的编码如下所示:
var oModel = new sap.ui.model.json.JSONModel();
oModel.loadData("data.json");
var oDataset = new sap.viz.ui5.data.FlattenedDataset({
dimensions: [{
axis : 2,
name : oLocText.getText('Id'),
value : "{Id}"
}],
measures : [{
group : 1,
name : DataA,
value : '{DataA}'
},{
group : 2,
name: DataB,
value: '{DataB}'
}],
data : {
path : "/d/results"
}
});
oVizFrame.setDataset(oDataset);
oVizFrame.setModel(oModel);
oVizFrame.setVizType('combination');
oVizFrame.setVizProperties({
title: {
visible: true,
text: "Combined"
},
plotArea: {
colorPalette : d3.scale.category20().range(),
}});
var feedValueAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({
'uid': "primaryValues",
'type': "Measure",
'values': [ DataA , DataB]
}),
feedCategoryAxis = new sap.viz.ui5.controls.common.feeds.FeedItem({
'uid': "axisLabels",
'type': "Dimension",
'values': [ Id]
});
oVizFrame.addFeed(feedValueAxis);
oVizFrame.addFeed(feedCategoryAxis);
非常感谢您的帮助! 最佳答案
请试试:
var feedValueAxis1 = new sap.viz.ui5.controls.common.feeds.FeedItem({
'uid': "valueAxis",
'type': "Measure",
'values': [ DataA ]
}), feedValueAxis2 = new sap.viz.ui5.controls.common.feeds.FeedItem({
'uid': "valueAxis2",
'type': "Measure",
'values': [DataB]
}),
它会自动将
plot
DataA
对 left axis
作为 bar 和 DataB
对 right
axis
作为 line。请注意,从
SAPUI5 1.40.
开始可以使用双组合关于javascript - VizFrame 具有多个 Y 轴的组合图表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38738785/