Bagaimana cara memplot objek FDA menggunakan ggplot2?
Sep 04 2020
Menggunakan paket fda, saya telah membuat objek fd yang disebut "kurva":
splinebasis = create.bspline.basis(rangeval = c(0,100),
nbasis = 23,
norder = 4)
curve = smooth.basis(x, y, splinebasis)$fd
Pada titik ini saya dapat dengan mudah memplot objek fd saya melalui perintah:
plot(curve)
Mendapatkan hasil yang bagus.
Yang ingin saya lakukan, adalah memplot objek menggunakan paket ggplot2, tetapi sayangnya saya tidak tahu cara membuat kode st ggplot2 yang menggunakan basis dan koefisien untuk mengembalikan kurva kontinu *.
- Saya sebenarnya telah melakukannya menggunakan eval.fd, tetapi saya ingin memplot fungsi spline B yang sebenarnya menggunakan ggplot, daripada beberapa poin diskrit baru yang dihasilkan.
Jawaban
1 MarcoSandri Sep 04 2020 at 21:32
Berikut adalah solusi sederhana menggunakan predictdari fdapaket.
library(fda)
set.seed(1)
x <- 0:100
y <- cumsum(rnorm(101))
splinebasis <- create.bspline.basis(rangeval = c(0,100),
nbasis = 23,
norder = 4)
curve <- smooth.basis(x, y, splinebasis)
# Plot using base graphic engine
plot(curve$fd)
# Plot using ggplot2
library(ggplot2)
xx <- seq(0,100,0.1)
df <- data.frame(x=xx, yhat = predict(curve, newdata=xx))
ggplot(data=df, aes(x=x, y=yhat)) +
geom_line() +
geom_hline(aes(yintercept=0), linetype=2) +
labs(x="time", y="value") +
theme_bw()
Kiat Pemilik Anjing yang Bermanfaat: Mengapa Penting untuk Membiarkan Anjing Anda Mengendus di Jalan
Jana Duggar: Semua yang Dia Katakan Tentang Cinta dan Jendela 5 Tahunnya untuk Menemukan 'Yang Satu'