我正在绘制一个带有次要 y 轴的图,它只是主轴的乘法缩放,以便以替代单位显示它。
我的主要 y 轴是对数缩放的,带有来自 annotation_logticks
的对数刻度线。有什么方法可以在缩放单位的辅助 y 轴上获取对数刻度线?目前他们在主要单位。
library(tidyverse)
x=c(100,1000000,100,1000000)
y=c(0.01,0.01,0.32,0.32)
z=c(1,1,0.5,0.5)
data <- data.frame(x,y,z)
data %>%
ggplot(aes(x = x, y = y, z = z, fill = z)) +
geom_raster(interpolate=TRUE) +
coord_fixed(ratio = 1, xlim = c(100,1000000), ylim=c(0.01,0.32)) +
annotation_logticks(sides = "trbl") +
scale_x_log10() +
scale_y_log10(sec.axis = sec_axis(~ . / 0.0714,
breaks=c(0.2,0.5,1,2,5),
name = "Sec. Axis")) +
scale_fill_continuous() +
theme_bw()
由 reprex package 创建于 2020-08-24 (v0.3.0)
额外的图片:
最佳答案
似乎没有办法直接使用 annotation_logticks
执行此操作,因为您可以更改的唯一位置参数是 base
。但是,改 rebase 数不会影响主断点的位置,主断点的位置由主轴值决定。
但是,您可以通过在辅助轴上手动设置中断和标签来实现类似的效果:
data %>%
ggplot(aes(x = x, y = y, z = z, fill = z)) +
geom_raster(interpolate=TRUE) +
coord_fixed(ratio = 1, xlim = c(100,1000000), ylim=c(0.01,0.32)) +
annotation_logticks(sides = "tbl") +
scale_x_log10() +
scale_y_log10(sec.axis = sec_axis(~ . * 14,
breaks= c(seq(0.1, 1, 0.1), 2:5),
labels = replace(character(14),
c(2, 5, 10, 11, 14),
c(0.2, 0.5, 1, 2, 5)),
name = "Sec. Axis")) +
scale_fill_continuous() +
theme_bw()
关于r - 如何将日志标记放在辅助轴上?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63558115/