Как я могу ограничить область графа? - PullRequest
0 голосов
/ 11 апреля 2019

Я строю несколько графиков, и я хочу, чтобы домен базового графика между -1 и 1 не существовал, так как именно там находятся графы с ограничениями:

x1 = seq(-1,0,0.01)
x2 = seq(0, 1, 0.01)
base = seq(-4, 4, 0.01)
y1 = function(x) {(1+x)^3}
y2 = function(x) {(1-x)^2}
plot(base, 0*base, xlab="x", ylab="y")
points(x1, y1(x1))
points(x2, y2(x2))

В настоящее время проходит линия, проходящая черезгде х1 и х2.Я бы хотел, чтобы он работал только между -4 и 1 и 1 и 4.Я попытался построить базу дважды, но тогда из-за ограничения ничего не будет в базовом графике.Я мог бы использовать xlim или ylim для краев, но это ограничение находится между -1 и 1, и я понятия не имею.

1 Ответ

0 голосов
/ 12 апреля 2019

Способ сделать то, что вы хотите, это иметь соответствующую часть base как NA, и эти точки не будут построены.

Это данные и функции, как в вопросе.

x1 <- seq(-1, 0, 0.01)
x2 <- seq(0, 1, 0.01)
base <- seq(-4, 4, 0.01)
y1 <- function(x) {(1 + x)^3}
y2 <- function(x) {(1 - x)^2}

Теперь используйте функцию is.na<-, чтобы все в base между -1 и 1 было равно NA.

is.na(base) <- -1 <= base & base <= 1

И запускать графические команды без изменений.

plot(base, 0*base, xlab = "x", ylab = "y")
points(x1, y1(x1))
points(x2, y2(x2))

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...