2014-11-25 230 views
2

我想要使用顛倒的y軸和頂部的x軸繪製ggplot2。我使用scale_y_reverse()來獲得顛倒的y軸,但不知道如何將x軸放在頂部而不是底部。任何幫助將不勝感激。由於ggplot2:使用顛倒的Y軸和x軸繪製頂部

dfn <- read.table(header=T, text=' 
supp dose length 
    OJ 0.5 13.23 
    OJ 1.0 22.70 
    OJ 2.0 26.06 
    VC 0.5 7.98 
    VC 1.0 16.77 
    VC 2.0 26.14 
') 

library(ggplot2) 
p1 <- ggplot(data=dfn, aes(x=dose, y=length, group=supp, colour=supp)) + geom_line() + geom_point() 
p1 <- p1 + scale_y_reverse() 
print(p1) 

enter image description here

+0

不幸的是,這個功能不太可能實現。見[相關問題](http://stackoverflow.com/questions/21035101/ggplot2-move-x-axis-to-top-intersect-with-reversed-y-axis-at-0)。 – tonytonov 2014-11-25 10:35:33

+1

雖然AFAIK這是在ggvis支持。 – tonytonov 2014-11-25 10:37:37

+0

感謝@tonytonov對我的問題感興趣。除了使用「Inkscape」之外,是否有任何解決方法?謝謝 – MYaseen208 2014-11-25 10:38:16

回答

1

你需要ggvis做到這一點:

library(ggvis) 
dfn %>% ggvis(~dose, ~length, fill= ~supp, stroke=~supp) %>% layer_lines(fillOpacity=0) %>% 
    scale_numeric('y', reverse=T) %>% add_axis('x',orient='top') 

enter image description here

2

如果你不想切換到ggvis只是還沒有,的的ggdraw(switch_axis_position(p1 , axis = 'x'))功能cowplot包裝工作得很好。

https://cran.r-project.org/web/packages/cowplot/vignettes/axis_position.html

+0

儘管此鏈接可能回答此問題,但最好在此處包含答案的基本部分,並提供供參考的鏈接。如果鏈接頁面更改,則僅鏈接答案可能會失效。 - [來自評論](/ review/low-quality-posts/11167218) – 2016-02-06 06:31:35

+1

該鏈接僅供參考,並非絕對必要的答案。所提供的代碼是答案的重要部分。 – Clay 2016-02-07 11:23:51