2016-08-03 108 views
4

我有一个SAPUI5框架的VizFrame控件的问题。我想在具有两个Y轴的复杂图表中显示一些数据。我的数据模型是这样的:VizFrame组合图表与多个Y轴

{ 
     "d" : { 
     "results" : [ 
      { 
      "DataA" : "2", 
      "DataB" : "4", 
      "Id" : "1", 
      }, 
      { 
      "DataA" : "3", 
      "DataB" : "2", 
      "Id" : "2", 
      } 
     ] 
    } 
} 

我试图显示DataA的左侧Y轴和数据B右边一个,同时使用ID为X轴。这适用于VizFrame类型没有问题:dual_linedual_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); 

非常感谢您的帮助!

回答

0

请尝试:

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] 
      }), 

自动plotDataA针对left axis,酒吧和DataBrightaxis作为行会。

请注意的是双组合是从SAPUI5 1.40.

0

开始我不知道,如果你的问题仍然是相关的。 如果我的问题得到解决,就是将度量显示为条形图/线条。我有一个类似的问题,我解决它通过设置plotArea的dataShape属性:

oVizFrame.setVizProperties({ 
    plotArea: { dataShape : {primaryAxis : ['bar','bar','bar'], 
          secondaryAxis : ['line', 'line', 'line']}} 
}); 

在这个例子中,最大的各轴3周的措施将被绘制为在轴1并作为轴2线条。我想,一旦你看到这个编码,你就知道该怎么办,当你想改变酒吧与线。 一句话:这里只允许'bar'和'line'(我检查了文档和源代码)。 此致敬礼, 塞巴斯蒂安