2016-07-23 333 views
0

我一直在使用Google搜索一段時間,並沒有簡單的方法來使用ggplot做雙軸?似乎很奇怪,因爲它是一個強大的軟件包,但不能做雙軸?在ggplot中繪製雙軸

我的問題是基本的。我想在兩個座標軸上繪製兩個數據集。

d1 = data.frame(x = rnorm(15),y = rnorm(15)) 
d2 = data.frame(x = rnorm(15),y = rnorm(15)) 
ggplot(data = d1, aes(x= x,y =y))+geom_line() 
ggplot(data = d2, aes(x= x,y =y))+geom_line() 

我不想使用facet_wrap或facet_grid或將圖表彼此對齊。

想法?幫助ggplot人?

謝謝。

+2

您可以在不同的層同積積兩,但與兩個Y軸(至少在沒有一些嚴重的黑客攻擊)。這是故意的:哈德利認爲雙重和分裂的y軸通常是誤導性的。 – alistaire

+0

它不是'ggplot',而是'plotly'確實允許分割y軸圖。 –

+0

[再現經濟學家圖表與雙軸](http://stackoverflow.com/questions/37347115/reproduce-a-the-economist-chart-with-dual-axis/37369764#37369764); [添加仲y軸在最上層對的一積(http://stackoverflow.com/questions/36754891/ggplot2-adding-secondary-y-axis-on-top-of-a-積/ 36759348#36759348); [如何到放-A變換尺度 - 上的右側對的一-GGPLOT2](http://stackoverflow.com/questions/18989001/how-can-i-put-a-轉化的規模上最右側--A-GGPLOT2的/ 19082285#19082285); [cowplot的switch_axis.R](https://github.com/wilkelab/cowplot/blob/master/R/switch_axis.R) –

回答

1

我在Github包中添加了一個函數,plotflow,我認爲可以這樣做。如果你不想安裝包,只需使用source code

devtools::install_github('trinker/plotflow') 
library(plotflow) 

d1 = data.frame(x = rnorm(15),y = rnorm(15)) 
d2 = data.frame(x = rnorm(15),y = rnorm(15)) 

plotflow::ggdual_axis(
    ggplot(data = d1, aes(x= x,y =y))+geom_line(), 
    ggplot(data = d2, aes(x= x,y =y))+geom_line() 
) 

enter image description here