2016-07-23 176 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