начиная ось Y с минимального значения, оси X с 0 и заставляя их пересекаться с помощью matplot () в R - PullRequest
0 голосов
/ 07 февраля 2019

В этот вопрос говорит, что на мой текущий вопрос ответил этот вопрос ;Однако предложенный код не подходит для меня достаточно далеко.Эти диаграммы должны быть пригодны для научной публикации, поэтому эффект yaxs = "i" и xaxs = "i" не подходит для того, что мне нужно создать.

Диаграммы, отображаемые во второй ссылке, выглядят великолепно и будутдо работы, которую я выполняю, однако, когда я использую аналогичный код для данных, которые не начинаются с 0:

matplot(times, cbind(a, b, c),
    pch = 1,
    col = c("red", "blue", "green"),
    lty = c(1, 1, 1),
    xlab = "Time (s)",
    ylab = "Flourescense Yield (RFU)",
    main = "test",
    xlim = c(0 , max(times)),
    ylim = c(min(a, b, c) - 0.1* min(a, b, c), max(a, b, c) + 0.1* max(a, b, c)),
    axes = FALSE)
axis(1, pos = 0, at = 0: round(times))
axis(2, pos = 0, at = round(min(a, b, c)): round(max(a, b, c)))

legend("topright", y =NULL, c("Biocomposite 1", "Biocomposite 2", "Biocomposite 3"),
       text.col = c("red", "blue", "green"))

, я получаю следующую диаграмму:

enter image description here

Я упростил код, поэтому я не использую свои фактические данные, и я использую следующие объекты:

a <- sample(1:100, 10, replace = TRUE)

b <- sample(1:100, 10, replace = TRUE)

c <- sample(1:100, 10, replace = TRUE)

times <- c(0:9)

Я хотел бы иметьоси для пересечения в (0,6) и горизонтальные отметки с шагом, кратным 5.

Любая помощь с сортировкой это было бы здорово!

1 Ответ

0 голосов
/ 11 февраля 2019

Достигните ли вы чего-либо из следующего?

Подход 1: Обычные оси (xaxs = 'r') с полем?

dev.new()
par(xaxs="r", yaxs="r")
plot(times, a, pch=1, col="red", axes=F, xlab=NA, ylab=NA)
axis(side=1, at=times)
mtext("Times (s)", side=1, line=2.5)
axis(side=2, at=seq(0,100,10))
mtext("Flourescense Yield", side=2, line=2.5)
points(times, b, col="blue")
box()

Подход 2: Или более узкие оси (xaxs = 'i'), но с немного преувеличенными пределами x и y и прямоугольником?

dev.new()
par(xaxs="i", yaxs="i")
plot(times, a, pch=1, col="red", axes=F, xlab=NA, ylab=NA,
     xlim=c(-.5,9.5), ylim=c(-2,102))
axis(side=1, at=times)
mtext("Times (s)", side=1, line=2.5)
axis(side=2, at=seq(0,100,10))
mtext("Flourescense Yield", side=2, line=2.5)
points(times, b, col="blue")
box()
...