双y轴-右y轴的标签和背景网格线

时间:2018-09-04 14:42:39

标签: r ggplot2 axis gtable

我需要在TValue.From<Variant>(value)中制作一个双y轴。我尝试遵循这里发布的@kohske解决方案:http://rpubs.com/kohske/dual_axis_in_ggplot2但是,仍然有两件事是不希望的,我不知道该如何解决。 1.在下面的图中,右y轴的标签不存在,而我想显示它 2.右y轴的网格线显示在条形图的顶部,而它应该在背景中。 这是情节:

enter image description here

和代码:

ggplot2

1 个答案:

答案 0 :(得分:1)

他们添加了辅助轴选项,以进行前一刻的ggplot。尝试将两个geom放在一个图上并添加scale_y_continuous(sec.axis = sec_axis(~.-280), name = "My Second Axis")

您可以计算比率,而不是简单的减法。可以使用sec.axis = sec_axis(~. * max(myData$y) / max(myData$y2))之类的方法内联完成此操作,也可以提前计算它,并将其应用于第二轴和打算在第二轴上读取的数据,如下所示:

library(ggplot2)
# Create Sample Data
myData <- data.frame(x = seq(1, 10, length.out = 10), 
                     y = seq(0, 20, length.out = 10), 
                     y2 = seq(0, 100, length.out = 10))
myData.ratio <- max(myData$y) / max(myData$y2)
ggplot(myData, (aes(x=x, y=y))) +
    geom_bar(stat="identity", aes(y=y2 * myData.ratio), fill = "lightblue") +
    geom_line(color="red") +
    geom_point(color="red") +
    scale_y_continuous(sec.axis = sec_axis(~. / myData.ratio, name = "My Second Axis"))

请注意,在计算轴时,我们将实际值乘以geom中的比率,然后除以该比率。

输出:

Dual Axis Output