SAP Analytics Cloud中的Sankey图表

2020-08-30 08:50发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我已经阅读了几个博客,这些博客主要介绍在SAP Analytics Cloud中使用R来创建可视化效果。 我们的团队正在研究一个项目,该项目要求我们在SAC中创建Sankey图表,而只有在SAC中使用R才可能。 有没有人有使用R在SAC中创建Sankey图表的经验? 我了解到有一篇博客对此进行了介绍。 但是有了这个,代码被应用到了一个小的数据集上。 我们尝试过的各种选项的sankey图表输出不适用于我们的整个数据集。 我们得到的输出仅占用16行。 对于某些我们尝试过的代码选项,有时有时不会出现错误,但不会显示任何图表。 我的问题是,对于数据集,SAC中的标准R功能是否存在一定的限制,因为数据集中的行数略超过66,000。 如果可以,那么是否有人有通过在SAC上部署R服务器来创建sankey图表的经验? 抱歉,冗长的文字,简短到无法回答我的问题。

预先感谢

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


你好社区,

我已经阅读了几个博客,这些博客主要介绍在SAP Analytics Cloud中使用R来创建可视化效果。 我们的团队正在研究一个项目,该项目要求我们在SAC中创建Sankey图表,而只有在SAC中使用R才可能。 有没有人有使用R在SAC中创建Sankey图表的经验? 我了解到有一篇博客对此进行了介绍。 但是有了这个,代码被应用到了一个小的数据集上。 我们尝试过的各种选项的sankey图表输出不适用于我们的整个数据集。 我们得到的输出仅占用16行。 对于某些我们尝试过的代码选项,有时有时不会出现错误,但不会显示任何图表。 我的问题是,对于数据集,SAC中的标准R功能是否存在一定的限制,因为数据集中的行数略超过66,000。 如果可以,那么是否有人有通过在SAC上部署R服务器来创建sankey图表的经验? 抱歉,冗长的文字,简短到无法回答我的问题。

预先感谢

付费偷看设置
发送
6条回答
蓋茨
1楼 · 2020-08-30 09:10.采纳回答

Bright,您好,这是该示例的扩展,对我而言适用于SAC中的四个支柱

#个输入数据
 col1 <-c("美洲","欧洲","美洲","欧洲","欧洲","欧洲")
 col2 <-c("美国","芬兰","加拿大","德国","瑞士","奥地利")
 col3 <-c("全局","金","金","全局","全局","全局")
 col4 <-c("北极","北极","北极","非北极","非北极","非北极")
 度量<-c(9,20,90,4,4,8)

 #数据准备图表
 df_raw <-data.frame(col1,col2,col3,col4,measure,stringsAsFactors = FALSE)
 df_sorted <-df_raw [order(df_raw $ col1,df_raw $ col2,df_raw $ col3,df_raw $ col4),]
 col1_factors <-factor(df_sorted $ col1)
 col2_factors <-factor(df_sorted $ col2)
 col3_factors <-factor(df_sorted $ col3)
 col4_factors <-factor(df_sorted $ col4)
 col1_int <-as.integer(factor(df_sorted $ col1))-1
 col2_int <-as.integer(factor(df_sorted $ col2))-1 +长度(levels(col1_factors))
 col3_int <-as.integer(factor(df_sorted $ col3))-1 +长度(c(levels(col1_factors),level(col2_factors))))
 col4_int <-as.integer(factor(df_sorted $ col4))-1 +长度(c(levels(col1_factors),level(col2_factors),level(col3_factors))))
 标签<-c(levels(col1_factors),levels(col2_factors),levels(col3_factors),levels(col4_factors))
 颜色<-c(rep(" 970A82",长度(唯一(df_sorted $ col1))),
            rep(" 008FD3",length(unique(df_sorted $ col2))),
            rep(" E35500",length(unique(df_sorted $ col3))),
            rep(" F0AB00",length(unique(df_sorted $ col4))))

 #情节
 库('plotly')
 plot_ly(
   类型='sankey',
   方向=" h",
   textfont = list(大小= 15),
   节点=列表(
     标签=标签,
     颜色=颜色
     垫= 10,
     厚度= 30,
     行=列表(
       颜色="黑色",
       宽度= 1
     )
   ),
   链接=列表(
     源= c(col1_int,col2_int,col3_int),
     目标= c(col2_int,col3_int,col4_int),
     值= c(df_sorted $ measure,df_sorted $ measure,df_sorted $ measure)
   )
 )
 
悠然的二货
2楼-- · 2020-08-30 09:22

谢谢安德烈亚斯。 我看过您的博客文章,并在数据上采用了您的脚本。 如您所见,您有两个接触点,我们需要建立4个接触点。 我为两个接触点采用了它,然后它起作用了。 是否有关于如何将其用于四个接触点的建议? 我是R.的新手,仍然在学习,因此对它并不那么熟悉。

大简至美
3楼-- · 2020-08-30 09:24

您好,

我没有使用SAP Analytics Cloud中的R创建Sankey图表的经验。 构建Sankey图表的最佳软件包是'networkD3'软件包: https://www.r-graph-gallery .com/sankey-diagram.html 。 这可以作为软件包在SAP Analytics Cloud中使用: https://www.sapanalytics.cloud/resources-r-packages/

请查看以下PDF(第19页),其中包含更多详细信息: https://cran.r-project.org/web/packages/networkD3/networkD3.pdf

亲切的问候,

Martijn van Foeken | Interdobs

渐行渐远_HoldOn
4楼-- · 2020-08-30 09:35

谢谢Van

我们实际上已使用它在SAC环境之外(因此在常规R系统上)创建了sankey图表。 但是,当我们尝试在SAC中实现图表时,不会创建该图表。 但是,我们可以使用" plotly"库创建它,但它不适用于我们的整个数据集。

风早神人
5楼-- · 2020-08-30 09:11

Hi Bright,

使用" plotly"可以使您处在正确的轨道上,甚至可以在R Visualization中使用googleviz库来创建sankey图表。

我不确定您的意思是它不适用于您的数据集。

我的经验表明,故事筛选器确实会影响创建Sankey图表的检索数据,输入参数也会如此。

致谢

Afshin

bbpeas
6楼-- · 2020-08-30 09:33

Hello Bright,下面是一些示例代码,用于将Sankey图表添加到SAC https://blogs.sap.com/2019/10/28/adding-an-interactive-sankey -chart-to-sap-analytics-cloud /
如果您要在Sankey图表中显示6万个不同的元素,那么对于任何Sankey图表而言,这都太细了。 在这种情况下,您可以先汇总数据,然后再将其传递到图表中。 例如,您无需传递详细的发票数据,而可以按大陆和产品区域显示汇总收入。 许多问候,安德里亚斯

一周热门 更多>