Есть ли вариант R, чтобы лучше проиллюстрировать пространственное распределение типов сообществ? - PullRequest
0 голосов
/ 03 октября 2019

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

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

x=c("A1","A1","A1","B1","B1","B1","C1","C1","C1")
y=factor(c("surface","intermediate","bottom","surface","intermediate","bottom","surface","intermediate","bottom"))
Protists=c(1,2,2,1,1,2,1,3,3)
area=factor(c("estuaries","estuaries","estuaries","continental","continental","continental","oceanic","oceanic","oceanic"))
table=data.frame(Profile=x,depth=y,Type=Protists,area=area)
colors.gr=c("1"="#fd8d3c","2"="#993404","3"="#fcae91")
ggplot(table,aes(Profile,depth,width=.9,height=.9))+
  geom_tile(aes(x=factor(Profile),fill=factor(Type)),colour="grey50")+
  scale_y_discrete(limits=rev(c("surface","intermediate","bottom")))+
  facet_grid(cols=vars(area),space="free_x",scales="free_x")+
  scale_fill_manual(values=colors.gr)

result from above code

У кого-нибудь есть предложения по его улучшению? Идея, которую я должен был сделать что-то похожее на эту ссылку: https://www.r -bloggers.com / один из лучших и самых недоиспользуемых графов в ggplot2 / , но яне уверен, как подойти к нему с дискретными значениями. Спасибо!

1 Ответ

0 голосов
/ 01 ноября 2019

Начну с того, что согласен с советом @shs относительно графиков плотности. Но решил немного повозиться с вашим кодом, чтобы повторить внешний вид графиков с накоплением. Я также удалил некоторую избыточность в коде графика, так как вы учли Профиль вне кода ggplot и вам не нужно было использовать scale_y_discrete().

ggplot(table,aes(Profile,depth,width=1.2))+  # Increased width to promote overlap
  geom_tile(aes(fill=factor(Type)))+
  facet_grid(cols=vars(area), scales = "free_x") +
  scale_fill_manual(values=colors.gr)+
  theme_classic() +
  theme(panel.spacing.x = unit(0, "lines"))   #Removes spacing between facets

enter image description here Возможно, вы захотите добавить вертикальные или горизонтальные линии с geom_vline() или geom_hline(), которые будут пунктирными, чтобы обеспечить выделение при необходимости.

...