我对 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 DataAleft axis 作为 bar 和 DataBright axis 作为 line。

请注意,从 SAPUI5 1.40. 开始可以使用双组合

关于javascript - VizFrame 具有多个 Y 轴的组合图表,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/38738785/

10-09 23:26