Skip to main content
cancel
Showing results for 
Search instead for 
Did you mean: 

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now! Learn more

Reply
MartinSlaa
Frequent Visitor

Script runtime error for published R script on the Power BI Service

Hello!

I have created a circular barchart in Power BI desktop using R. Everything works fine in Power BI Desktop. Image of the visual and 
the R-script can be seen below. However, when publishing the report I get the Script Runtime error and the visual won't display. 

MartinSlaa_0-1662013999170.png

 

R-script: 

library(tidyverse)

data <- dataset
data$AvgangstidGruppe <- factor(rep(data$AvgangstidGruppe))

 
# Set a number of 'empty bar' to add at the end of each group
empty_bar <- 4
to_add <- data.framematrix(NAempty_bar*nlevels(data$AvgangstidGruppe), ncol(data)) )
colnames(to_add) <- colnames(data)
to_add$AvgangstidGruppe <- rep(levels(data$AvgangstidGruppe), each=empty_bar)
data <- rbind(datato_add)
data <- data %>% arrange(AvgangstidGruppe)

#Setting AvgangstidGruppeNR to correct Id

data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Formiddag"] <- 4
data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Rush, ettermiddag"] <- 5
data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Rush, morgen"] <- 3
data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Sen kveld"] <- 7
data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Tidlig kveld"] <- 6
data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Tidlig morgen"] <- 2
data$AvgangstidGruppeNr[data$AvgangstidGruppe == "Natt"] <- 1

data <- data[order(data$AvgangstidGruppeNr), ]

data$id <- seq(1nrow(data))

# Get the name and the y position of each label
label_data <- data
number_of_bar <- nrow(label_data)
angle <- 90 - 360 * (label_data$id) /number_of_bar
label_data$hjust <- ifelseangle < -9010)
label_data$angle <- ifelse(angle < -90angle+180angle)

base_data <- data %>%
  group_by(AvgangstidGruppe) %>%
  summarize(start=min(id), end=max(id) - empty_bar) %>%
  rowwise() %>%
  mutate(title=mean(c(startend)))

base_data <- base_data[order(base_data$start), ]
 
grid_data <- base_data
grid_data$end <- grid_data$endcnrow(grid_data), 1:nrow(grid_data)-1)] + 1
grid_data$start <- grid_data$start -1
grid_data <- grid_data[-1,]

 
# Make the plot
ggplot(dataaes(x=as.factor(id), y=Påstigendefill=AvgangstidGruppe)) +       # Note that id is a factor. If x is numeric, there is some space between the first bar

geom_bar(aes(x=as.factor(id), y=Påstigendefill=AvgangstidGruppe), stat="identity"alpha=0.5) +
 
geom_segment(data=grid_dataaes(x = endy = 800xend = startyend = 800), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 700xend = startyend = 700), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 600xend = startyend = 600), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 500xend = startyend = 500), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 400xend = startyend = 400), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 300xend = startyend = 300), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 200xend = startyend = 200), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
geom_segment(data=grid_dataaes(x = endy = 100xend = startyend = 100), colour = "grey"alpha=1size=0.3 , inherit.aes = FALSE ) +
 
annotate("text"x = rep(max(data$id),8), y = c(100200300400500600700800), label = c("100""200""300""400""500""600""700""800") , color="grey"size=3 , angle=0fontface="bold"hjust=1) +

geom_bar(stat="identity"alpha=0.5) +
ylim(-500,1300) +
theme_minimal() +
theme(
    legend.position = "none",
    axis.text = element_blank(),
    axis.title = element_blank(),
    panel.grid = element_blank(),
    plot.margin = unit(rep(-1,4), "cm")
  ) +
coord_polar() +
geom_text(data=label_dataaes(x=idy=Påstigende+10label=Halvtimehjust=hjust), color="black"fontface="bold",alpha=0.6size=2.5anglelabel_data$angleinherit.aes = FALSE ) +
 
geom_segment(data=base_dataaes(x = starty = -20xend = endyend = -20), colour = "black"alpha=1size=2 )
geom_text(data=base_dataaes(x = titley = -20label=AvgangstidGruppe), hjust=c(0,0,0,0,0,0), vjustc(0,0,0,0,0,0), colour = "black"alpha=1size=0fontface="bold"inherit.aes = FALSE)

 

Script Runtime Error:

MartinSlaa_1-1662014000063.png

 


The error message is in Norwegian, but it says: "Try again later, or contact customer support".
Licence used: Pro Licence

R version used: 4.2.1
tidyverse version used: 1.3.2

What I found interesting is that when I created a simple barchart where I hard coded the values needed for the plot instead of using the data I have loaded into Power BI Desktop, the visual works after I publish it.
The loaded data I am trying to use is not exceeding the limit of 150 000 rows, as I have shaved it down to just 7 values and I still get the Script Runtime Error.

Any help in solving this would be much appreciated.
Thanks!

1 ACCEPTED SOLUTION
MartinSlaa
Frequent Visitor

Solved! 
Power BI was not able to display the graph when data column name contained æ, ø or å. 

View solution in original post

1 REPLY 1
MartinSlaa
Frequent Visitor

Solved! 
Power BI was not able to display the graph when data column name contained æ, ø or å. 

Helpful resources

Announcements
Power BI DataViz World Championships

Power BI Dataviz World Championships

The Power BI Data Visualization World Championships is back! Get ahead of the game and start preparing now!

December 2025 Power BI Update Carousel

Power BI Monthly Update - December 2025

Check out the December 2025 Power BI Holiday Recap!

FabCon Atlanta 2026 carousel

FabCon Atlanta 2026

Join us at FabCon Atlanta, March 16-20, for the ultimate Fabric, Power BI, AI and SQL community-led event. Save $200 with code FABCOMM.