【问题标题】:Geom_text labels not in correct locationGeom_text 标签位置不正确
【发布时间】:2020-05-06 17:10:12
【问题描述】:

Graph

我正在使用 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);

不知道我错了。请帮忙

【问题讨论】:

  • 您能通过分享dput(df) 的输出来分享df 中的内容吗?或者,通过相同的方法 (dput(datafram)) 共享 datafram(您开始使用的原始数据)中的内容。

标签: r dataframe ggplot2 plotly geom-text


【解决方案1】:

问题是由geom_text(aes(x = Capex, ...)) 中的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 位置传递。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2021-06-20
    • 1970-01-01
    • 2020-02-20
    • 1970-01-01
    • 2016-11-29
    相关资源
    最近更新 更多