Я пытаюсь добавить круговые диаграммы на карту в marmap.Мне удалось создать нужную карту, используя:
dat <- getNOAA.bathy(14,24,57,61,res=4, keep=TRUE)
autoplot(dat, geom=c("r", "c"), colour="white", size=0.1) + scale_fill_etopo()
Но когда я пытаюсь добавить точки данных или круговые диаграммы, ничего не появляется или я получаю сообщение об ошибке: Предупреждающие сообщения: 1: В doTryCatch (return (expr), name, parentenv, handler): недопустимое графическое состояние 2: в doTryCatch (return (expr), name, parentenv, handler): недопустимое графическое состояние
Мне кажется, я правильно следовал примеру в space.piesпоэтому я не уверен, где я ошибся.Я попытался очистить свое рабочее пространство и перезапустить код, но это не помогло.Ниже приведен код, который я пробовал.Я пытаюсь создать 7 круговых диаграмм, каждая с 8 возможными срезами, поэтому я указал частоту каждого среза (от freq.a до freq.h) и цвета каждого среза (от col.a до col.h).Затем я указал свои координаты (х и у).Затем я создаю фрейм данных для точек, вызываю карту, добавляю точки и круговые диаграммы.
freq.a<-c(0, 0, 0, 0.657894737, 0, 0.555555556, 0)
freq.b<-c(0,0.847457627,0,0,0,0.555555556,0)
freq.c<-c(8.333333333,10.16949153,15,10.52631579,6.666666667,14.44444444,12.63736264)
freq.d<-c(75.83333333,68.6440678,70.83333333,71.71052632,73.33333333,66.11111111,71.97802198)
freq.e<-c(0,0,0,0,1.666666667,0,0.549450549)
freq.f<-c(10,17.79661017,8.333333333,13.15789474,15,13.88888889,12.08791209)
freq.g<-c(5.833333333,2.542372881,5.833333333,3.947368421,3.333333333,3.888888889,2.747252747)
freq.h<-c(0,0,0,0,0,0.555555556,0)
col.a<-rep("red",7)
col.b<-rep("orange",7)
col.c<-rep("yellow",7)
col.d<-rep("green",7)
col.e<-rep("blue",7)
col.f<-rep("purple",7)
col.g<-rep("black",7)
col.h<-rep("white",7)
y=c(58.78627075,59.625881,59.06541145,58.029829,60.33012651,58.69069925,58.29392997)
x=c(17.5868715,18.9053088,18.28217463,16.753265,18.47761255,17.17527965,16.92259188)
pts=data.frame(x,y,freq.a, freq.b, freq.c, freq.d, freq.e, freq.f, freq.g, freq.h, col.a, col.b, col.c, col.d, col.e, col.f, col.g, col.h)
dat <- getNOAA.bathy(14,24,57,61,res=4, keep=TRUE)
autoplot(dat, geom=c("r", "c"), colour="white", size=0.1) + scale_fill_etopo()
points(pts,pch=19,col="blue", cex=0.5)
space.pies(pts[,1], pts[,2],
pie.slices=pts[,3:10], pie.colors=pts[,11:18], pie.radius=0.5)