Добавление текстовых меток поверх barplot с помощью ggplotly в R - PullRequest
0 голосов
/ 30 октября 2019

У меня есть следующий фрейм данных в R

  DF_1<-data.frame("ID"=c("A_1", "A_2"), 'Sum'= c(2500,12500), "RR"= 
 c(95,95),  "CC"= c(50,50), "nn"=c(4,4), "DP"= c(12.5,100))

Я создал следующую гистограмму с текстом, написанным на гистограмме следующим образом

 p2<-ggplot(data = DF_1, mapping = aes(x = ID, y = DP, 
 fill=str_wrap(ID,10))) + geom_bar(stat = 'identity', width = .35, position 
 = "dodge")+  geom_text(aes(label=RR) , position = position_dodge(0.9),vjust 
  = 2,check_overlap = TRUE)+geom_text(aes(label=CC) , position =  postion_dodge(0.9),vjust = 4,check_overlap = TRUE)+  geom_text(aes(label=nn) , position = position_dodge(0.9),vjust =  6,check_overlap = TRUE)+ labs(fill = "LEGEND")+labs(x = "XLabels", y= "DPP")+theme(legend.key.height = unit( 2 ,"cm"))+theme(axis.text.x=element_blank())+ggtitle("DPPCHART")+ theme(plot.title = element_text(hjust = 0.5))

На графике, сгенерированном три текстаярлыки четко генерируются на барплоте. Следующий шаг - заставить работать динамические тики

p<-ggplotly(p, dynamicticks=T)

Теперь три текстовые метки перекрывают друг друга.

Есть ли способ сохранить текстовые метки отдельно при использовании ggplotly.

1 Ответ

1 голос
/ 30 октября 2019

Вы можете использовать HTML прямо внутри меток, чтобы убрать перекрытие:

library(stringr)
library(ggplot2)
library(plotly)

DF_1 <- data.frame("ID"=c("A_1", "A_2"), 'Sum'= c(2500,12500), 
          "RR"= c(95,95),  "CC"= c(50,50), "nn"=c(4,4), "DP"= c(12.5,100))

p <- ggplot(data = DF_1, mapping = aes(x = ID, y = DP,fill=str_wrap(ID,10))) + 
        geom_bar(stat = 'identity', width = .35, position = "dodge") +  
        geom_text(aes(label=paste0(RR, "<br>", CC, "<br>", nn)) , 
              position = position_dodge(0.9), vjust = 2, check_overlap = TRUE) + 
        labs(fill = "LEGEND") + labs(x = "XLabels", y= "DPP") + 
        theme(legend.key.height = unit( 2 ,"cm")) +
        theme(axis.text.x=element_blank()) +
        ggtitle("DPPCHART") + 
        theme(plot.title = element_text(hjust = 0.5)) +
        scale_y_continuous(limits = c(0,110))

ggplotly(p)  # can use with or without dynamicTicks=TRUE

Вывод:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...