Метки Geom_text не в правильном месте - PullRequest
0 голосов
/ 06 мая 2020

График

Я использую geom_text для добавления меток на свою гистограмму, но они находятся в неправильных местах (как показано на рисунке). Вот мой код:

df<-data.frame(Project=datafram$Project,Capex=datafram$Capex,width=datafram$Capex, Emissions=datafram$Emissions)
df$w <- cumsum(df$width) #cumulative sums.
df$wm <- df$w - df$width
df$Emissions<- with(df, wm + (w - wm)/2)

p  <- ggplot(df, aes(ymin = 0))
p1 <- p + geom_rect(aes(xmin = wm, xmax = w, ymax = Emissions, fill = Project))
p2<-p1 + geom_text(aes(x = Capex, y = Emissions, label = Project), size=4, nudge_x = c(0.22,-0.22) ) 
p3<-p2+labs(title = "Abatement Curve", x = "Capex", y = "Capital Efficiency")
g=p3;
p = ggplotly(g);

Не уверен, что я ошибаюсь. Пожалуйста, помогите

1 Ответ

1 голос
/ 06 мая 2020

проблема вызвана x = Capex в geom_text(aes(x = Capex, ...)). Вероятно, вы хотите, чтобы ggplot рисовал тексты посередине поверх geom_rects - это можно сделать так:

df <- data.frame(Project = c("one", "two", "three", "four", "five", "six"), Capex = c(4000, 4000, 1000,2000,10000,1000))
df$w <- cumsum(df$Capex)
df$wm <- df$w - df$Capex
df$Emissions<- with(df, wm + (w - wm)/2)

p <- ggplot(df) +
  geom_rect(aes(ymin = 0, xmin = wm, xmax = w, ymax = Emissions, fill = Project)) +
  geom_text(aes(x = wm + Capex/2, y = Emissions, label = Project), size = 4, nudge_y = 180) +
  labs(title = "Abatement Curve", x = "Capex", y = "Capital Efficiency")

С x = wm + Capex/2 я передаю горизонтальный центр каждого geom_rect как x- позиция для текстов.

...