2016-08-03 77 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'(我檢查了文檔和源代碼)。 此致敬禮, 塞巴斯蒂安