Как передать аргументы в contour () внутри plot.surface () [пакет R полей] - PullRequest
0 голосов
/ 11 декабря 2018

При использовании plot.surface () из пакета полей R мне нужно изменить параметр «method» функции contour () со стандартного значения «flattest» на «simple».

Функция contour () находится внутри plot.surface ().

В документации plot.surface () говорится, что вы можете передавать дополнительные параметры двум другим функциям, представленным в plot.surface (), но не упоминаете, какпередать параметры в contour ().

Мне нужно сделать это, потому что контурные линии на моем графике получаются прямыми, в результате чего на линиях нет чисел.Я думаю, что я мог бы заставить цифры появляться на моих линиях контура, если бы я мог изменить метод контура с "плоским" на "простой" или "край".

Вот изображение контура:

enter image description here

Код, использованный для создания изображения:

inMat <- mat_Qe
surface <- list(x = xtick_labs,
                y = ytick_labs,
                z = inMat)
plot.surface(surface, type = "C",
             xlab = "Mean factory efficiency (kL Ethanol / MT Root)",
             ylab = "Mean farm cost (lcu / MT Root)", labcex = 1, col = mapPalette(45))
title(main = "Equilibrium Quantity Map (MT / day)", cex.main = 1)

Извините, это не воспроизводимо, но я думаю, что в этом случае воспроизводимость на самом деле не нужна.Мне просто нужно, чтобы кто-нибудь сказал мне, как передать параметр метода в contour () внутри plot.surface ().

1 Ответ

0 голосов
/ 12 декабря 2018

Изменяя пример в ?plot.surface, следующее передаст method в contour.Если вы запустите plot.surface, вы увидите, что эллипсы (...) приведены к контуру, если type = "c", хотя это, по-видимому, не указано в документации.Обратите внимание, что это строчные буквы c, а не C.С заглавной "C" аргумент передается не contour, а image.plot.

library("fields")

# Toy data
x <- seq( -2,2,,80)
y <- seq( -2,2,,80)
z <- outer( x,y, "+")
obj <- list(x=x, y=y, z=z)

# Pass method to contour when type = "c"
plot.surface(obj, col="red", type="c", method = "simple")

enter image description here

plot.surface(obj, type="c", col="red", method = "edge")

enter image description here

...