gpt4 book ai didi

r - ggplot 0.9.3 问题与 facet_wrap、free scales 和 coord_flip - 第二次尝试

转载 作者:行者123 更新时间:2023-12-04 12:59:04 30 4
gpt4 key购买 nike

曾经完美运行的旧代码不再适用于 0.9.3。该问题与刻面、自由尺度和坐标翻转的使用有关。

这是一种重现的方法:

数据集:d.csv:

"Priority","Owner","Project"
"Medium","owner7","Team4"
"Medium","owner1","Team1"
"Low","","Team3"
"High","owner6","Team3"
"Medium","","Team4"
"Medium","owner3","Team1"
"Medium","owner2","Team1"
"Medium","owner5","Team2"
"Low","owner4","Team2"
"Critical","","Team2"
"Medium","owner2","Team1"
"High","","Team4"

代码:
data <- read.csv(file="d.csv",head=TRUE)
attach(data)

p3 <- ggplot(data,aes(x=Owner,fill=Priority))+
geom_bar(aes(y=..count..)) +
facet_wrap(~ Project, nrow=2, scales="free") +
opts(legend.position="none")

这会创建一个多面图,但我需要翻转轴。以前,添加 coord_flip() 可以解决问题,但现在新的 ggplot 不允许同时使用自由比例尺和 coord_flip。有没有其他方法可以转动刻面轴?自由音阶对我很重要。感谢您的指点。

最佳答案

这是我自己第二次或第三次遇到这个问题。我发现我可以通过定义自定义几何体来破解我自己的解决方案。

geom_bar_horz <- function (mapping = NULL, data = NULL, stat = "bin", position = "stack", ...) {
GeomBar_horz$new(mapping = mapping, data = data, stat = stat, position = position, ...)
}

GeomBar_horz <- proto(ggplot2:::Geom, {
objname <- "bar_horz"

default_stat <- function(.) StatBin
default_pos <- function(.) PositionStack
default_aes <- function(.) aes(colour=NA, fill="grey20", size=0.5, linetype=1, weight = 1, alpha = NA)

required_aes <- c("y")

reparameterise <- function(., df, params) {
df$width <- df$width %||%
params$width %||% (resolution(df$x, FALSE) * 0.9)
OUT <- transform(df,
xmin = pmin(x, 0), xmax = pmax(x, 0),
ymin = y - .45, ymax = y + .45, width = NULL
)
return(OUT)
}

draw_groups <- function(., data, scales, coordinates, ...) {
GeomRect$draw_groups(data, scales, coordinates, ...)
}
guide_geom <- function(.) "polygon"
})

这只是从ggplot2 github复制geom_bar代码,然后切换 x y 在标准笛卡尔协调器中制作水平条形图的引用。

请注意您 必须使用 position='identity'可能还有 stat='identity'为了这个工作。如果您需要使用身份以外的职位,则必须编辑 collide function使其正常工作。

关于r - ggplot 0.9.3 问题与 facet_wrap、free scales 和 coord_flip - 第二次尝试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16149043/

30 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com