2015-02-03 2 views
2

У меня возникли проблемы с установкой стартовой точки в верхней части для geom_polar(theta = "y") при наличии положительных и отрицательных значений с разными минимальными и максимальными значениями. Он работает при установке равных y-пределов (см. P4). Как правильно установить начальную точку?ggplot set start in top in geom_polar

Пример:

df <- data.frame(x = letters[1:10], y = seq(-1.7, 1.2, length.out = 10)) 

plot <- ggplot(df, aes(x = x, y = y, fill = x)) + geom_bar(stat = "identity") + guides(fill = F) 
p1 <- plot + coord_polar(theta = "y") 
p2 <- plot + coord_polar(theta = "y", start = 0) 
p3 <- plot + coord_polar(theta = "y", start = pi) #does not work 
p4 <- plot + coord_polar(theta = "y", start = pi) + ylim(c(-2,2)) # does work 

Plot http://www.ahschulz.de/pub/overflow/geom_polar.png

ответ

2

Я предполагаю, что вы хотите, 0 на вершине, но не хочу, чтобы указать пределы. Вы можете изменить масштаб на max(y)/diff(range(y))

plot + coord_polar(theta = "y", start = 2*pi*max(df$y)/diff(range(df$y)))