Радарные участки в ggplot - PullRequest
0 голосов
/ 12 октября 2018

Я понимаю, что этот вопрос задавался ранее, но, используя некоторые из прошлых ответов, я все еще не могу получить радиолокационную карту, которая мне бы хотелось.Я использовал это, в качестве примера радиолокационной карты, которую я пытаюсь воспроизвести. Но я не могу понять последние биты.

Это то, что я имею до сих пор: enter image description here

Я недоволен следующим: 1. Полярная сетка на фоне.Как мне создать такой, чтобы он проходил через середину каждого бара?Похоже, сначала так, но потом останавливается, и я не могу понять, почему.Если я не могу пройти через середину, я бы хотел, чтобы это проходило снаружи каждого бара.Если это не сработает, то, возможно, просто нарежьте радиолокационную карту на 8 равных участков?2. Почему между одними столбиками есть ширина, а у других не так уж и много.

Код:

t<-12
angle_bucket<-seq(0,2*pi-2*pi/t,2*pi/t) 
angle_group<-seq(1,length(angle_bucket),1)                   
meanL<-c(17.289,20.7857,18.675,10.4,0,0,22.1,19.5,18.02,19.5,30.35,29.83)
normized<-c(1,0.368,0.2105,0.05263,0,0,0.10526,0.21056,0.5263,0.157894,0.7368,0.8421)
ang_dfp<-data.frame(angle_bucket,angle_group,meanL,normized) 
ang_dfp$angle_group<-as.factor(ang_dfp$angle_group)
ang_dfp$angle_bucket<-ang_dfp$angle_bucket+2*pi/t/2    
p<-ggplot()+
  geom_bar(data=ang_dfp,aes(x=angle_bucket,y=normized, fill=meanL), stat = "identity")+
  scale_fill_viridis_c(alpha=1,begin=0,end=1,direction=-1,option='plasma',aesthetics ='fill')+
  scale_x_continuous(breaks = 0:nlevels(ang_dfp$angle_group))+
  #Theme
  theme_minimal()+
  theme(
    panel.background = element_rect(fill = "transparent", colour = NA),
    axis.title = element_blank(),
    axis.ticks = element_blank(),
    axis.text=element_blank(),
    axis.line=element_blank(),
    plot.margin = unit(c(0.1,0.1,0.1,0.1), "cm"),
    plot.background = element_rect(fill = "transparent", colour = NA),
    legend.position = 'none'
  )+
  coord_polar(theta='x',start=0,direction=-1)
p

1 Ответ

0 голосов
/ 12 октября 2018

Если вы внимательно посмотрите пример, на который вы ссылаетесь, они создают график с использованием коэффициента.Вы используете числовую (непрерывную) переменную.Я принуждаю angle_bucket к фактору.

ggplot() +
  geom_bar(data=ang_dfp,aes(x=as.factor(angle_bucket),y=normized, fill=meanL), stat = "identity")+
  scale_fill_viridis_c(alpha=1,begin=0,end=1,direction=-1,option='plasma',aesthetics ='fill')+
  # scale_x_continuous(breaks = 0:nlevels(ang_dfp$angle_group))+
  #Theme
  theme_minimal()+
  theme(
    panel.background = element_rect(fill = "transparent", colour = NA),
    axis.title = element_blank(),
    axis.ticks = element_blank(),
    axis.text=element_blank(),
    axis.line=element_blank(),
    plot.margin = unit(c(0.1,0.1,0.1,0.1), "cm"),
    plot.background = element_rect(fill = "transparent", colour = NA),
    legend.position = 'none') +
  coord_polar(theta='x',start=0,direction=-1)

enter image description here

...