Я пытаюсь напечатать некоторые значения (geom_point) и поверх этого нарисовать некоторую функцию (stat_function) с помощью ggplot2
, однако я не могу отобразить функцию, потому что она имеет аргумент типа list.
Я хочу напечатать функцию 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"))