Jak zasugerowano w innych odpowiedziach, można uzyskać dostęp do punktów ggplot za pomocą print.ggplot()
. Jednakże, kod print()
również wypisuje obiekt ggplot, co może nie być pożądane.
wyodrębnić można uzyskać dane obiektu ggplot, bez drukowania działkę korzystając ggplot_build()
:
library(ggplot2)
library(ggplot2movies)
m <- ggplot(movies, aes(x = rating))
m <- m + geom_density()
p <- ggplot_build(m) # <---- INSTEAD OF `p <- print(m)`
head(p$data[[1]], 3)
# y x density scaled count n PANEL group ymin
# 1 0.007376115 1.000000 0.007376115 0.02591684 433.6271 58788 1 -1 0
# 2 0.007652653 1.017613 0.007652653 0.02688849 449.8842 58788 1 -1 0
# 3 0.007872571 1.035225 0.007872571 0.02766120 462.8127 58788 1 -1 0
# Just to show that those are the points you are after, extract and use them
# to create a lattice xyplot
library(lattice)
m2 <- xyplot(y ~x, data=p$data[[1]], type="l")
library(gridExtra)
grid.arrange(m, m2, nrow=1)
znalazłem że stat_density() pozwala na ustawienie parametrów. Prawdopodobnie to odpowiada pierwszej części. Nadal chcesz wiedzieć, czy równanie lub punkty można wyodrębnić. – unixsnob