Exploración del código R en SAP Analytics Cloud

Objective

After completing this lesson, you will be able to trabaje con el código R.

Ejemplos de visualizaciones R y el código R

Al seleccionar Insertar y visualización R, puede crear una amplia variedad de gráficos utilizando un script de R.

En esta lección, descubrirá nueve ejemplos de visualizaciones R creadas en SAP Analytics Cloud y el código R asociado desde el editor de scripts.

Puede copiar el código y utilizarlo en el sistema de prácticas prácticas de SAP para experimentar con las diferentes visualizaciones R utilizadas en esta unidad.

Gráfico de líneas

En este ejemplo, puede ver que se ha creado un gráfico de líneas para mostrar los ingresos de ventas a lo largo del tiempo por región.

Un ejemplo de un gráfico de líneas en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
1234567891011
library(ggplot2) BestRunCorpRetail$`Sales Revenue` <- BestRunCorpRetail$`Sales Revenue` / 1000 # Line Graph for Sales Over Time ggplot(BestRunCorpRetail, aes(x = Date, y = `Sales Revenue` , group=Region, color=Region )) + geom_line() + labs(title = "Sales Revenue (in k) by Region Over Time", x = "Date", y = "Sales Revenue") + theme(legend.position="bottom") theme_minimal()

Gráfico de barras horizontales apiladas

En este ejemplo, puede ver que se ha creado un gráfico de barras horizontales apiladas para mostrar la cantidad vendida por región y líneas.

Ejemplo de un gráfico de barras horizontales apiladas en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

Algunas visualizaciones de R se pueden crear como gráficos interactivos. Este ejemplo es un gráfico con el que los usuarios pueden interactuar para aislar y centrarse en datos específicos, como puede ver en la siguiente imagen.

Algunos gráficos son interactivos. A la izquierda, puede ver que los datos africanos están aislados. A la derecha, se excluyen los datos europeos.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
1234567
library(ggplot2) library(plotly) # Bar Chart for Sales by Product Category p1 <- ggplot(BestRunCorpRetail, aes(x = Lines, y = `Quantity sold`/1000 , fill = Region )) + geom_bar(stat = "identity") + coord_flip() ggplotly(p1, tooltip = c("x", "y", "fill"))

Gráfico de burbujas de dispersión

En este ejemplo, puede ver que se ha creado un gráfico de burbujas de dispersión interactivo para mostrar una comparación de los ingresos de ventas por cantidad vendida para cada jefe de ventas.

Un ejemplo de un gráfico de burbujas de dispersión interactivo en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

Este es otro ejemplo de un gráfico interactivo. Los usuarios pueden reproducir la interacción, así como pasar el ratón por encima de elementos de ella para ver información adicional, como puede ver en la siguiente imagen.

Ejemplo de un gráfico interactivo. La imagen en la parte superior izquierda tiene resaltado el botón Reproducir. La imagen inferior derecha tiene una quick info que proporciona información adicional.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
12345678910111213141516
# import packages ggplot2 and plotly library(ggplot2) library(plotly, warn.conflicts = FALSE) # create a ggplot frame through function ggplot() and add data points, labels and scale settings BestRunCorpRetail$`Sales Revenue` <- BestRunCorpRetail$`Sales Revenue` / 1000 BestRunCorpRetail$`Quantity sold` <- BestRunCorpRetail$`Quantity sold` / 1000 gg <- ggplot(BestRunCorpRetail, aes(`Quantity sold`, `Sales Revenue`, color = Manager)) + geom_point(aes(size = Discount , frame = Year, ids = Manager)) + labs(title = "Comparison Sales Revenue (in k) and Quantity Sold (in k) versus Discount" , y = "Sales Revenue", x = "Quantity Sold") + scale_x_log10() # convert the ggplot frame to a plotly frame through function ggplotly() ggplotly(gg)

Gráfico de densidad

En este ejemplo, puede ver que se ha creado un gráfico de densidad para mostrar la densidad de las líneas de productos en cada región.

Ejemplo de un gráfico de densidad en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
123456
# import packages ggplot2 and plotly library(ggplot2) library(plotly, warn.conflicts = FALSE) ggplot(BestRunCorpRetail, aes( Region , Lines )) + labs(title = "Density of the Product Lines in the Different Region" ) + geom_jitter(aes(color = Lines ), size = 1) + theme(legend.position="none")

Nube de palabras

En este ejemplo, puede ver que se ha creado una nube de palabras para mostrar la relación entre las ciudades y el margen bruto asociado.

Un ejemplo de una nube de palabras en una historia de SAP Analytics Cloud. En tonos de azul, los nombres de las ciudades se dimensionan en relación con el margen bruto. El código R utilizado para crearlo sigue el ejemplo.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
12345678
# load package library(wordcloud) # get words words <- BestRunCorpRetail$`City` # get frequency frequency <- BestRunCorpRetail$`Gross Margin` # generate word cloud wordcloud(words, frequency, scale = c(4, 1.5), rot.per=0.2, colors=brewer.pal(8, "Blues"))

Diagrama de red Sankey

En este ejemplo, puede ver que se ha creado un diagrama de red Sankey para mostrar las reclamaciones por región, país y ciudad.

Un ejemplo de un diagrama de red de Sankey en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

Este es un ejemplo de un gráfico que los usuarios pueden pasar el ratón por encima de los elementos para ver la información relacionada, como puede ver en la siguiente imagen.

Ejemplo de un gráfico de diagrama de red Sankey. El ratón se encuentra sobre Francia, mostrando 31.815 quejas para toda Francia. Todos los datos de Francia ahora se muestran como grises oscuros.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
12345678910111213141516171819202122232425262728293031323334353637
# import package dplyr and networkD3 suppressPackageStartupMessages(library(dplyr)) library(networkD3) # de-factorize three level columns in SankeyData2 to strings BestRunCorpRetail$Region <- as.character(BestRunCorpRetail$Region) BestRunCorpRetail$Country <- as.character(BestRunCorpRetail$Country) BestRunCorpRetail$City <- as.character(BestRunCorpRetail$City) # create the first- and second-level decomposition dataset as list of (source, target, amount) level_1 <- aggregate(BestRunCorpRetail[,4], by=list(BestRunCorpRetail$Region, BestRunCorpRetail$Country), FUN=sum) level_2 <- aggregate(BestRunCorpRetail[,4], by=list(BestRunCorpRetail$Country, BestRunCorpRetail$City), FUN=sum) # rename the headers in the two level data frames names(level_1) <- c("Source","Target","Complains") names(level_2) <- c("Source","Target","Complains") # stack the two level data frames together sankeyData <- suppressWarnings(bind_rows(level_1, level_2)) # create a list of nodes in all levels and index them from 0 sankeyNodes <- data.frame(Name = unique(c(sankeyData$Source, sankeyData$Target))) sankeyNodes$index <- 0:(nrow(sankeyNodes)-1) # create a sankeyLinks data frame by masking node names in sankeyData with their indexes in sankeyNodes sankeyLinks <- merge(sankeyData, sankeyNodes, by.x="Source", by.y="Name") sankeyLinks <- merge(sankeyLinks, sankeyNodes, by.x="Target", by.y="Name") # select the masked columns and rename the headers sankeyLinks <- sankeyLinks[, c(4,5,3)] names(sankeyLinks) <- c("Source","Target","Complains") # call the sankeyNetwork() function to generate the sankey diagram sankeyNetwork(Links = sankeyLinks, Nodes = sankeyNodes, Source = "Source", Target = "Target", Value = "Complains", NodeID = "Name", fontSize = 10, nodeWidth = 5, nodePadding = 5 , unit="Complains")

Gráfico de barras polares

En este ejemplo, puede ver que se ha creado un gráfico de barras polares para mostrar el margen bruto y los ingresos de ventas por región.

Ejemplo de un gráfico de barras polares en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
123456789101112131415161718192021222324252627
library(ggplot2) library(reshape2) SalesRevenue <- as.numeric(BestRunCorpRetail$`Sales Revenue`) / 1000 total_GrossMargin <- sum(BestRunCorpRetail$`Gross Margin`) Region <- as.character(BestRunCorpRetail$Region) percentage <- BestRunCorpRetail$`Gross Margin` * 100/ total_GrossMargin percentage_char <- as.character(formatC(percentage, digits = 2, format = "f")) width <- percentage * 3.6 GrossMargin <- c(width[1]/2) label <- paste(percentage_char, seq = "%", sep = "") for (i in 2:length(width)) { GrossMargin <- c(GrossMargin, sum(width[1:i-1]) + width[i]/2) } angle <- GrossMargin for (i in 1:length(angle)) { if (angle[i] >= 180) { angle[i] <- angle[i] - 180 } } rose <- data.frame(SalesRevenue, Region, GrossMargin) p <- ggplot(rose, aes(x=GrossMargin, y=SalesRevenue, fill=Region))+ geom_bar(width=width, stat="identity")+ geom_text(aes(x=GrossMargin, y=SalesRevenue+40, label=label, angle=angle-90), size=5)+ labs(x="Gross Margin %", y="Sales Revenue ") p + coord_polar(theta="x", start=0, direction=-1)

Diagrama de retraso

En este ejemplo, puede ver que se ha creado un diagrama de retraso para mostrar el número de problemas notificados en cada trimestre.

Un ejemplo de un diagrama de retraso en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
1234567891011121314151617181920212223242526272829303132333435363738394041
library(lubridate) library(dplyr) library(ggplot2) library(forecast) ## Prepare data BestRunCorpRetail$`Number of Issues reported` <- BestRunCorpRetail$`Number of Issues reported` / 1000 df <- BestRunCorpRetail %>% mutate(Year = as.integer(as.character(Year))) %>% mutate(quarter_num = as.numeric(substr(Quarter, 2, 2))) %>% mutate(first_month_of_quarter = (quarter_num * 3) -2) %>% mutate(first_day_of_quarter = make_date( Year, first_month_of_quarter, 1)) %>% select(first_day_of_quarter, `Number of Issues reported`) %>% arrange(first_day_of_quarter) ## Convert to ts object first_period = min(df$first_day_of_quarter) last_period = max(df$first_day_of_quarter) tso <- ts(df$`Number of Issues reported`, start = c(year(first_period), quarter(first_period)), end = c(year(last_period), quarter(last_period)), frequency = 4) ## Plot ts <- window(tso,start=2021) p <- gglagplot(ts, do.lines = TRUE, seasonal=TRUE, colour=TRUE, diag=FALSE , lags = 9) + labs(title = "Lag plot - Quarterly Number of Issues reported (in k)") ## Layout p + theme( plot.title = element_text(color="red", size=15, face="bold", hjust=0.5 ,margin = margin(t = 0, r = 0, b = 16, l = 0)) , panel.border = element_rect(colour = "blue", fill=NA) , axis.ticks = element_line( size = 1, linetype = 'solid') , axis.ticks.length = unit(8, "pt"), axis.text.x = element_text(color="black", size = 8, face = "bold" , margin = margin(t = 6, r = 0, b = 0, l = 0)) , axis.title.x = element_text(color="blue", size = 12, face = "bold", margin = margin(t = 10, r = 0, b = 0, l = 0)) , axis.text.y = element_text(color="red", size = 8, face = "bold" , margin = margin(t = 0, r = 6, b = 0, l = 0)) , axis.title.y = element_text(color="yellow", size =12, face = "bold", margin = margin(t = 0, r = 10, b = 0, l = 0)) , axis.line = element_line(colour = "black") , strip.text = element_text(color="blue", size = 12, face = "bold") )

Gráfico de Pareto

En este ejemplo, puede ver que se ha creado un gráfico de Pareto para mostrar los ingresos de ventas por región.

Ejemplo de un gráfico de Pareto en una historia de SAP Analytics Cloud. El código R utilizado para crearlo sigue el ejemplo.

El ejemplo anterior se creó utilizando el siguiente código R en el editor de scripts de visualización de R:

Code Snippet
123456789
library(ggplot2) library(qcc) Sales = BestRunCorpRetail$`Sales Revenue` / 1000 names(Sales) = BestRunCorpRetail$`Country` pareto.chart(Sales, ylab = "Sales",main='Pareto Chart For Sales Revenue',col=heat.colors(length(Sales)))