Необходимо указать одинаковые пределы для обоих графиков, чтобы они имели одинаковую ось.Вот почему у меня ylim = c(100,10000000)
на обоих графиках.
Вам нужно определить правильные поля и границы графика, чтобы можно было показать все.Это то, что делает par(mar = c(5,4,4,4) + 0.1)
.
В legend
вам необходимо указать тип линии для всех ваших трасс;Итак, lty = c(1, 2)
неверно, поскольку в легенде трассировка B
пунктирная, а C
пунктирная.Для этого я использовал lty = c(1, 1, 2)
.
Кроме того, я использовал col="red"
в mtext
, чтобы прояснить, что вторичная ось предназначена для C
, что также в red
.
data <- structure(list(Time = 1:7,
A = c(33046, 970250, 1870125, 259625, 3838750, 962333, 2272917),
B = c(196, 578, 323, 509, 215, 5437, 41028),
C = c(0.81, 0.94, 2.31, 12.2, 11.5, 4.7, 10.1)),
row.names = c(NA, -7L),
class = c("tbl_df", "tbl", "data.frame"))
opar <- par(mar = c(5,4,4,4) + 0.1)
plot(data$Time, data$A, type = "l", xlim = NULL, ylim = c(100,10000000),
log = "y", main = "Title", xlab = "Time", ylab = "copies", col= "blue")
par(new = TRUE)
plot(data$Time, data$B, type = "l", xlim = NULL, ylim = c(100,10000000),
log = "y", main = "", xlab = "", ylab = "", col= "green")
par(new = TRUE)
plot(data$C, type = "l", xaxt = "n", yaxt = "n",
ylab = "", xlab = "", col = "red", lty = 2, )
axis(side = 4)
mtext("secondary axis", side = 4, line = 3, col="red")
legend("topleft", c("A", "B", "C"),
col = c("blue", "green", "red"), lty = c(1, 1, 2))
par(opar)
Создано в 2019-06-03 пакетом представительство (v0.3.0)