The R script code is here:
library(ggplot2)
library(reshape2)
library(RColorBrewer)
library(ggrepel)
library(scales)
library(ggthemes)
set.seed(42)
getColors<-function(n){
mypal<-colorRampPalette(brewer.pal(12, "Paired"))
sample(mypal(n), n, replace=FALSE)
}
PropBarPlot<-function(df){
melteddf<-melt(df, id=names(df)[1], na.rm=T)
n<-length(levels(factor(melteddf$variable)))
ggplot(melteddf, aes_string(x=names(df)[1])) +
geom_bar(data=melteddf,position="fill",stat="identity",width=0.06,aes(fill=variable,y=value))+
labs(y="FAILURE",x="PRODUCT")+
geom_text_repel(data=dataset,aes(label=dataLabel,x=Product,y=FinalFailure),direction="y",size=3.5,color="black",segment.size=0,check_overlap=TRUE,fontface="bold")+
geom_point(data=dataset,aes(label=dataLabel,x=Product,y=FinalFailure),color="black")+
scale_fill_manual(values=c("#FF0D00","#FF540A","#FFA600","#FFC100","#FFCB00","#FFDD00","#FFE200","#FFE900","#FFF100","#FFF300","#FDFF00","#FDFF00","#D9FF00","#A6FF00","#86FF00","#10FF00","#00FF43")) +
theme_classic(base_size=14)+
guides(fill=FALSE)+
coord_flip()+
scale_y_continuous(limits=c(0,max(dataset$FinalFailure)),oob=rescale_none)
}
df <- data.frame(id=dataset$Product,
val0=100,
val1=1,
val2=1,
val3=1,
val4=1,
val5=1,
val6=1,
val7=1,
val8=1,
val9=1,
val10=5,
val11=1,
val12=1,
val13=1,
val14=1,
val15=1,
val16=1)
print(PropBarPlot(df))
Everything is working well in Power BI desktop but the overlapping text labels have been spread in Power BI online service.