Мне нужно построить эллипс на растровом графике. Я пробовал рисовать растр с простым plot(r1)
(r1 - это растровый слой), а затем add=T
для построения эллипса, но он не работает. Затем я попробовал axes=F
для печати растра и снова попробовал add=T
для эллипса. Это все еще не работает.Добавьте эллипс на растровый график в R
Поэтому я попытался преобразовать данные эллипса в dataframe и попробовать добавить к растровому графику.
#Creating a raster
r <- matrix(sample(1:400),20,20)
r1<-raster(r)
#Creating ellipse with given mean and standard deviation values
theta <- seq(0, 2 * pi, length=(2000))
x <- 0.2 - 0.15 * cos(theta)
y <- 0.5 - 0.15 * sin(theta)
elp<- cbind(na.omit(x),na.omit(y))
#Converting ellipse data frame (elp) to SpatialDataFrame (ps)
ps <- SpatialPolygons(list(Polygons(list(Polygon(elp)),2)))
#Plotting raster with ellipse
plot(r1)
plot(ps, add=T)
В идеале ps
должен выглядеть как эллипс, но это круг. С другой стороны, если я построю elp
(кадр данных, из которого создан ps), я получаю эллипс.
plot(elp)
Может кто-то пожалуйста, помогите с этим?
[Как сделать большой R воспроизводимый пример?] (http://stackoverflow.com/questions/5963269) – zx8754