【问题标题】:Add categorical grouping to scatter plot of continuous data in R?将分类分组添加到R中连续数据的散点图?
【发布时间】:2018-03-25 10:54:47
【问题描述】:

对不起,如果图片1 有点基本 - 我的项目主管发送的布局!我创建了一个灰海豹总丰度(Total)随观察时间(Obsv_time)的散点图,并在顶部安装了一个gam,如图2所示:

plot(Total ~ Obsv_time,
     data = R_Count,
     ylab = "Total",
     xlab = "Observation Time (Days)",
     pch = 20, cex = 1, bty = "l",col="dark grey")
lines(R_Count$Obsv_time, fitted(gam.tot2))

我想以某种方式在图表上显示相应的季节(图片1) - 来自一个分类因子变量(4 个级别:预繁殖、繁殖、繁殖后、换羽),它对应于 Obsv_time。

我不确定是否需要绘制辅助轴或只是在图表中添加标签......以及如何做每一个!谢谢!

Wanted graph layout - indicate season from factor variable Scatterplot with GAM curve

【问题讨论】:

标签: r graphics scatter-plot categorical-data


【解决方案1】:

您可以使用基本 R 图形来做到这一点。离开原始图中的 x 轴,并分别添加带有季节标签的轴。您可以通过叠加多边形来指示季节。

## Some bogus data
x = sort(runif(50,0,250))
y = 800*(sin(x/40) + x/100 + rnorm(50,0, 0.2)) + 500
FittedY = 800*(sin(x/40) + x/100)+500

plot(x,y, pch= 20, col='lightgray', ylim=c(300,2700), xaxt='n',
    xlab="", ylab='Total')
lines(x, FittedY)
axis(1, at=c(25,95,155,215), tick=FALSE,
    labels=c('PreBreed', 'Repro', 'PostBreed', 'Moulting'))
rect(c(-10,65,125,185), 0, c(65,125,185,260), 3000, 
    col=rainbow(4, alpha=0.05), border=NA)

【讨论】:

    【解决方案2】:

    如果您能够使用 ggplot2,您可以将另一个因子变量添加(或从时间计算)到您的数据框,这将是您的季节。那么这只是使用颜色(或任何其他)美学来使用这个季节变量的问题。

    require(ggplot2)
    df <- data.frame(total = c(26, 41, 31, 75, 64, 32, 7, 89),
                     time = c(1, 2, 3, 4, 5, 6, 7, 8))
    df$season <- cut(df$time, breaks=c(0, 2, 4, 6, 8),
                     labels=c("winter", "spring", "summer", "autumn"))
    ggplot(df, aes(x=time, y=total)) +
      geom_smooth(color="black") +
      geom_point(aes(color=season))
    

    【讨论】:

      猜你喜欢
      • 2019-05-15
      • 1970-01-01
      • 1970-01-01
      • 2019-02-08
      • 2013-05-05
      • 1970-01-01
      • 2017-01-28
      • 1970-01-01
      • 2016-12-21
      相关资源
      最近更新 更多