如何旋转ggplot2树状图?

时间:2014-02-26 14:39:35

标签: r ggplot2

假设我有一个像这样的ggplot2树状图:

require(ggplot2)
require(ggdendro)

hc <- hclust(dist(USArrests), "ave")
dhc <- as.dendrogram(hc)

ddata <- dendro_data(dhc, type="rectangle")

ggplot(segment(ddata),labels=rownames(USArrests))+ 
geom_segment(aes(x=x, y=y, xend=xend, yend=yend))+ 
theme_dendro()

如何以90度顺时针旋转?我在coord_flip()中找到了一些主题,但我只想旋转而不是翻转。我试过了geom_segment(aes(x=y, y=x, xend=yend, yend=xend)),但它不起作用。这是我想要的情节:

enter image description here

1 个答案:

答案 0 :(得分:4)

对y值使用xxend,对y值使用yyend。使用scale_y_reverse(),您将获得逆序订单群。

ggplot(segment(ddata),labels=rownames(USArrests))+ 
  geom_segment(aes(y=x, x=y, yend=xend, xend=yend))+ 
  theme_dendro()+scale_y_reverse()

使用原始代码可以实现相同目的,但添加coord_flip()可旋转90度,然后添加scale_x_reverse()以获得相反的顺序。

ggplot(segment(ddata),labels=rownames(USArrests))+ 
  geom_segment(aes(x=x, y=y, xend=xend, yend=yend))+ 
  theme_dendro()+coord_flip()+scale_x_reverse()