Below is my code. Need help. Please assist. Getting an error
Error : Aesthetics must be either length 1 or the same as the data (70): x, y, fill
provider <- dfPatientControl$Provider
df <- data.frame(
value <- factor(provider, levels = provider),
percent <- c(dfPatientControl$PercentControl),
fill <- factor(ifelse(percent>=70, "Above 70%","Below 70%"), levels = c("Above 70%","Below 70%") ),
undercontrol <- c(dfPatientControl$TotalUnderControl)
)
df <- df[which(df$percent > 0),]
View(df)
if(is.data.frame(df)){
if(nrow(df) > 0){
p <- ggplot(df,aes(x=value,y=percent, fill = fill))+
geom_bar(stat = "identity",width=0.9,colour = "black")+
geom_text(aes(label=paste0(prettyNum(percent, big.mark = ','), "%","(",undercontrol,")")),size = 3.5, position = position_stack(vjust = 0.9),colour = "black")+
xlab("Providers") + ylab("Percent") +
labs(caption="Powered by OMS Trace Analytics ®")+
scale_fill_manual(name = "Legend", values=c("Above 70%"="forestgreen","Below 70%"="firebrick3")) +
ggtitle("BP Control By Provider")+
theme_classic()+
theme(
plot.title = element_text(color="black", size=14, face="bold"),
axis.text.x =element_text(size=14),
axis.text.y =element_text(size=14),
axis.title.x = element_text(size=14,face="bold"),
axis.title.y = element_text(size=14,face="bold"),
legend.text=element_text(size=14),
legend.title=element_text(size=14, face = "bold"),
panel.grid.major = element_blank(), #remove background box,color
panel.grid.minor = element_blank(),#remove background box,color
panel.background = element_blank(), #remove background box,color
axis.line = element_line(colour = "black"))
p+ coord_flip(ylim = c(25,100))
}
else{
showNotification("Please select different provider. No data available" , type = "message")