在ggplot2中将第三个轴添加到散点图中

时间:2017-07-24 23:54:30

标签: r plot ggplot2

我刚才有一个关于如何将第三轴(辅助x轴)添加到现有散点图的问题。 例如,我有以下数据框:

df = data.frame(a = c(10,20,30,40,50,60,70),b = c(12,15,21,21,22,26,31), c = c(0.1,0.2,0.3,0.3,0.3,0.4,0.5))

我使用“a”作为x轴,使用“b”作为y轴并绘制散点图。那可能是我在面板顶部有一个辅助x轴来指示相应的“c”值吗?

1 个答案:

答案 0 :(得分:2)

这是一个评论而不是答案。 我们可以使用sec_axis来添加辅助轴,并且有几个关于它的帖子。但是,在您的数据集中,a和c之间不存在一对一的关系。例如,c中的0.3值对应于a中的30,40,50个值。这使得双x轴的使用在这种情况下不令人满意。请参阅下面的示例。

使用ggplot2的次轴问题在SO中引起了相当大的争议。最近版本的ggplot2实现了sec_axis函数,其中第一个参数是trans是转换公式。当您在数量之间存在关系时,这尤其有用。磅和公斤,公里和米,摄氏度和开尔文等。

总结一下,如果这是你的真实数据集,我会避免二级(误导性)x轴。 我期待听到关于这个特殊问题的其他评论。

library(ggplot2)
q = ggplot() + geom_point(data = df, aes(y = b, x = a)) 
q + scale_x_continuous("a", 
                       sec.axis = sec_axis(~ . ,  breaks = df$a, labels = df$c , name = "c"))

enter image description here