我正在尝试绘制两组数据:ch4(数据规模为〜2e-06)和海拔(数据规模为〜10)。我在sec.axis
中使用ggplot2
命令。我无法正确缩放两个数据集。如果我未在scale_y_continuous
内使用限制,则ch4数据将显示为一条平线,因为左手轴已按比例缩放。如果我在scale_y_continuou
s的ch4数据图中包含了限制,但是海拔高度根本没有显示(即使右手轴刻度处于适当的刻度上),有人可以帮我弄清楚我在做什么这里做错了。
示例数据:
timestamp ch4 alt
47232.42 1.923e-06 0.44
47232.57 1.908e-06 1.38
47232.77 1.931e-06 5.93
47233.03 1.946e-06 12.01
47233.20 1.904e-06 6.43
47233.43 1.913e-06 0.42
ch4是一条平线的示例代码:
basicplot <- ggplot(data=mydata, aes(x=timestamp)) +
geom_line(aes(y=ch4), color="red") +
geom_line(aes(y=alt), color="blue") +
scale_y_continuous(sec.axis = sec_axis(~ . * 20/0.000002, name="altitude"))
print(basicplot)
不显示海拔高度的示例代码(即使右手刻度看起来还可以):
basicplot <- ggplot(data=mydata, aes(x=timestamp)) +
geom_line(aes(y=alt), color="blue") +
geom_line(aes(y=ch4), color="red") +
scale_y_continuous(sec.axis = sec_axis(~ . * 20/0.000002, name="altitude"), limits = c(0, 0.000005))
print(basicplot)
答案 0 :(得分:0)
scale_coeff <- 20/0.000002
ggplot(data=mydata, aes(x=timestamp)) +
geom_line(aes(y=alt / scale_coeff), color="blue") +
geom_line(aes(y=ch4), color="red") +
scale_y_continuous(name = "ch4",
sec.axis = sec_axis(~ . * scale_coeff, name="altitude")) +
theme(axis.text.y.left = element_text(color = "red"),
axis.title.y.left = element_text(color = "red"),
axis.text.y.right = element_text(color = "blue"),
axis.title.y.right = element_text(color = "blue"))
mydata<- read.table(header = T, stringsAsFactors = F,
text = "timestamp ch4 alt
47232.42 1.923e-06 0.44
47232.57 1.908e-06 1.38
47232.77 1.931e-06 5.93
47233.03 1.946e-06 12.01
47233.20 1.904e-06 6.43
47233.43 1.913e-06 0.42")