r - Geom_text 标签位置不正确
问题描述
我正在使用 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);
不知道我错了。请帮忙
解决方案
问题是由x = Capex
in引起的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 位置传递。
推荐阅读
- javascript - 滚动页面时多次添加和删除类 - 错误行为
- java - 如何使用充气城堡创建混合证书
- mysql - LEFT JOIN 运行速度很慢,但嵌套选择不会
- selenium - 如何使用 selenium 从站点中提取几个表
- javascript - 使用表时 Null 不是对象错误 (Javascript)
- primeng - Primeng 分页器 rowsPerPageOption 支持“全部”
- r - 如何删除一行,因为它在另一列中只有一个或相同的条目?
- ironpython - 如何在 Visual Studio 上运行 python 脚本和包
- javascript - MapView 以倾斜而不是向上显示地图
- wix - 我在哪里可以找到内置对话框(WelcomeDlg、ErrorDlg 等)的源代码?