Текстовые метки для сюжета - PullRequest
0 голосов
/ 18 февраля 2019

Я хотел бы использовать этот график:

    dtf1 <- data.frame(ID = c(1:10),text = c("my", "and","keep","any","somenone",
"exist","tr",
"ggplot2","euf","edff"), 
Diff = c(-5:4), stringsAsFactors = FALSE)

Я пробовал это: Ошибка в f (..., self = self): Разрывы и метки имеют разную длину, которая будет включать текст текстастолбец как метки в каждой соответствующей строке.

    dtf1$colour <- ifelse(dtf1$Diff < 0, "firebrick1","steelblue")
    dtf1$hjust <- ifelse(dtf1$Diff > 0, 1.3, -0.3)
    dtf1$colour <- ifelse(dtf1$Diff < 0, "negative","positive")
    ggplot(dtf1,aes(ID,Diff,label="",hjust=hjust))+
         geom_bar(stat="identity",position="identity",aes(fill = colour))+
         scale_fill_manual(values=c(positive="firebrick1",
negative="steelblue")) + 
scale_y_continuous(labels = dtf1$text) + 
coord_flip()

И ошибка:

:

Ошибка в f (..., self = self):Разрывы и метки разной длины

Ответы [ 2 ]

0 голосов
/ 18 февраля 2019

По сути, это то же самое, что и выше, за исключением того, что мы используем geom_label вместо этого, если вы предпочитаете.

ggplot(dtf1,aes(ID,Diff,label="",hjust=hjust))+
  geom_bar(stat="identity",position="identity",aes(fill = colour))+
  scale_fill_manual(values=c(positive="firebrick1",
                             negative="steelblue"))+
  geom_label(aes(label=text))+
  coord_flip()
0 голосов
/ 18 февраля 2019

Точно так же, как один из предложенных комментариев:

library(ggplot2)
dtf1 <- data.frame(ID = c(1:10),text = c("my", "and","keep","any","somenone",
                                         "exist","tr",
                                         "ggplot2","euf","edff"), 
                   Diff = c(-5:4), stringsAsFactors = FALSE)

dtf1$colour <- ifelse(dtf1$Diff < 0, "firebrick1","steelblue")
dtf1$hjust <- ifelse(dtf1$Diff > 0, 1.3, -0.3)
dtf1$colour <- ifelse(dtf1$Diff < 0, "negative","positive")
ggplot(dtf1,aes(ID,Diff,label="",hjust=hjust))+
  geom_bar(stat="identity",position="identity",aes(fill = colour))+
  scale_fill_manual(values=c(positive="firebrick1",
                             negative="steelblue")) + 
  scale_y_continuous() + 
  geom_text(aes(label=text)) +
  coord_flip()

Создано в 2019-02-18 пакетом Представить (v0.2.1)

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