首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >生成不是密度的钟形/最佳数据

生成不是密度的钟形/最佳数据
EN

Stack Overflow用户
提问于 2021-04-19 23:16:53
回答 1查看 29关注 0票数 0

我愿意生成数据,以说明由于个体差异而导致的生态位重叠。为此,我使用了dnorm函数。它工作得很好,但它当然是一个密度,因此对于生态位表示是不准确的,生态位表示是对环境轴的反应。因此,我应该能够在不降低最大性能的情况下改变方差,这在使用密度时是不可能的(面积必须保持不变)。有没有人有办法生成一些钟形数据,或者最优曲线?我使用R,但我认为同样的原则可以应用于任何语言-我只需要拥有正确的数据!干杯!

EN

回答 1

Stack Overflow用户

发布于 2021-04-20 02:01:57

使用Kaiser-window函数的潜在解决方案:

代码语言:javascript
复制
library(ggplot2)
library(ggpubr)
library(signal)

x = seq(0, 10, 0.1)
Data <- data.frame(x1=x,
                   x2=x+1,#shifts the curve
                   y1=signal::kaiser(101, 100),
                   y2=signal::kaiser(101, 100),
                   y3=signal::kaiser(101, 50),
                   y4=signal::kaiser(101, 10))

A <- ggplot2::ggplot(data=Data,  ggplot2::aes(x=x1, y=y1))+
  ggplot2::geom_area(aes(fill="Species 1", colour="Species 1"), alpha = 0.7)+
  ggplot2::geom_area(data=Data,  ggplot2::aes(x=x2, y=y2, fill="Species 2", colour="Species 2"), alpha=0.7)+
  ggplot2::xlab("Environmental axis (e.g. light)")+
  ggplot2::ylab("Performance")+
  ggplot2::scale_fill_manual(values = c("darkturquoise", "darkmagenta"), name=element_blank())+
  ggplot2::scale_colour_manual(values = c("darkturquoise", "darkmagenta"), name=element_blank())+
  ggplot2::theme(plot.background = ggplot2::element_blank(),
               panel.grid.major = ggplot2::element_blank(),
               panel.grid.minor = ggplot2::element_blank(),
               panel.border = ggplot2::element_blank(),
               legend.text = ggplot2::element_text(size = 20),
               legend.position="none",
               axis.title=element_blank(),
               axis.text=element_blank(),
               axis.ticks=element_blank())

B <- ggplot2::ggplot(data=Data,  ggplot2::aes(x=x1, y=y3))+
  ggplot2::geom_area(aes(fill="Species 1", colour="Species 1"), alpha = 0.7)+
  ggplot2::geom_area(data=Data,  ggplot2::aes(x=x2, y=y4, fill="Species 2", colour="Species 2"), alpha=0.7)+
  ggplot2::xlab("Environmental axis (e.g. light)")+
  ggplot2::ylab("Performance")+
  ggplot2::scale_fill_manual(values = c("darkturquoise", "darkmagenta"), name=element_blank())+
  ggplot2::scale_colour_manual(values = c("darkturquoise", "darkmagenta"), name=element_blank())+
  ggplot2::theme(plot.background = ggplot2::element_blank(),
                 panel.grid.major = ggplot2::element_blank(),
                 panel.grid.minor = ggplot2::element_blank(),
                 panel.border = ggplot2::element_blank(),
                 legend.text = ggplot2::element_text(size = 20),
                 axis.title=element_blank(),
                 axis.text=element_blank(),
                 axis.ticks=element_blank())

figure <- ggpubr::ggarrange(A, B, ncol = 2, labels = c("A", "B"), common.legend=TRUE, legend="right")
annotate_figure(figure,
                bottom = text_grob("Environmental axis (e.g. light)", size = 20, x=0.4),
                left = text_grob("Performance", rot = 90, size = 20))

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/67164710

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档