Я пытаюсь напечатать некоторые значения (geom_point) и поверх этого нарисовать некоторую функцию (stat_function) с ggplot2
, однако я не могу построить функцию, потому что у нее есть аргумент списка типов.
Я хочу напечатать функцию create.new.func(x,W)
, которая получает два параметра (x, W), где x — числовое значение, а W — список, содержащий две матрицы разных размеров. Я пытался использовать строку
stat_function(fun= create.new.func,aes(colour="sep1"),args = list(W=superW))
Однако я продолжаю получать следующую ошибку:
Computation failed in `stat_function()`: non-conformable arguments##
Конечно, create.new.func(x,W=superW)
отлично работает для любого x. Весь фрагмент кода, который я видел до сих пор, похоже, использует только векторы для параметра args, отсюда и мой вопрос.
Пример:
W <- list(matrix(c(1, -1, -1, 1), nrow = 2), matrix(c(1, 2)))
func <- function(x, W){
sum(W[[2]] * (W[[1]] %*% c(1, x)))
}
ggplot() +
geom_point(aes(x = 0, y = 0)) +
theme_bw()+
stat_function(fun = func, args = list(W), aes(colour = "black")) +
scale_colour_manual("data", values = c("blue"))