Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/email/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript VizFrame多Y轴组合图_Javascript_Sapui5_Sap Fiori - Fatal编程技术网

Javascript VizFrame多Y轴组合图

Javascript VizFrame多Y轴组合图,javascript,sapui5,sap-fiori,Javascript,Sapui5,Sap Fiori,我对SAPUI5框架的VizFrame控件有问题。我想在一个有两个Y轴的复杂图表中显示一些数据。我的数据模型如下所示: { "d" : { "results" : [ { "DataA" : "2", "DataB" : "4", "Id"

我对SAPUI5框架的VizFrame控件有问题。我想在一个有两个Y轴的复杂图表中显示一些数据。我的数据模型如下所示:

{
      "d" : {
        "results" : [
          {
            "DataA" : "2",
            "DataB" : "4",
            "Id" : "1",
          },
          {
            "DataA" : "3",
            "DataB" : "2",
            "Id" : "2",
          }
       ]
   }
}
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); 
我试图在左Y轴上显示DataA,在右Y轴上显示DataB,同时使用X轴的Id。这在VizFrame类型中没有问题:dual_linedual_column

我还没有找到将数据显示为条形(Y1上的DataA)和线(Y2上的DataB)的方法。我当前的编码如下所示:

{
      "d" : {
        "results" : [
          {
            "DataA" : "2",
            "DataB" : "4",
            "Id" : "1",
          },
          {
            "DataA" : "3",
            "DataB" : "2",
            "Id" : "2",
          }
       ]
   }
}
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]
            }),
它将自动
数据A
左轴
绘制为条形,将
数据
右轴
绘制为直线


请注意,从
SAPUI5 1.40开始提供双组合。

我不知道您的问题是否仍然相关。 如果我答对了你的问题,那就是把度量值显示为条/线。我遇到了一个类似的问题,我通过设置plotArea的dataShape属性解决了这个问题:

oVizFrame.setVizProperties({
    plotArea: { dataShape : {primaryAxis : ['bar','bar','bar'],
                            secondaryAxis : ['line', 'line', 'line']}}
});
在此示例中,每个轴上最多3个测量值将绘制为轴1上的条形图和轴2上的直线。我想,一旦你看到这种编码,你就会知道当你想改变条和线时该怎么做。 一句话:这里只允许“bar”和“line”(我检查了文档和源代码)。 顺致敬意, 塞巴斯蒂安