座標のエレガントではない例です。
CoordPolar2 <- proto(CoordPolar, {
objname <- "polar2"
guide_foreground <- function(., details, theme) {
theta <- .$theta_rescale(details$theta.major, details)
labels <- details$theta.labels
# Combine the two ends of the scale if they are close
theta <- theta[!is.na(theta)]
ends_apart <- (theta[length(theta)] - theta[1]) %% (2*pi)
if (ends_apart < 0.05) {
n <- length(labels)
if (is.expression(labels)) {
combined <- substitute(paste(a, "/", b),
list(a = labels[[1]], b = labels[[n]]))
} else {
combined <- paste(labels[1], labels[n], sep="/")
}
labels[[n]] <- combined
labels <- labels[-1]
theta <- theta[-1]
}
grobTree(
if (length(labels) > 0) {
lab <- theme_render(
theme, "axis.text.x",
labels, 0.45 * sin(theta) + 0.5, 0.45 * cos(theta) + 0.5,
hjust = 0.5, vjust = 0.5,
default.units="native"
)
lab$rot <- (pi/2 - theta)/pi * 180
lab
},
theme_render(theme, "panel.border")
)
}
})
coord_polar2 <- CoordPolar2$build_accessor()
p <- qplot(data=presidential, name,end) + coord_polar2()
print(p)
を使用すると、再現性を提供することができます例? – MYaseen208
'theme_text(angle =)'が1つの値だけをサポートしていることを考えれば、軸ラベルを取り除き、角度を計算するgeom_textを使うことです。または、複数の角度を受け入れるようにソースを変更することもできます。しかし、私はggplot2の腸に精通した人にそれを任せます。 –
'qplot(data = presidential、name、end)+ coord_polar()+ opts(axis.text.x = theme_text(angle = 360/8 * seq_along(president $ name)))'は警告を出しますが、 。ありがとうbaptiste。 – baptiste