【问题标题】:Plots of average values against categories针对类别的平均值图
【发布时间】:2014-12-03 22:52:22
【问题描述】:

我有三个变量,两个分类变量和一个连续变量。分别说v1、v2和v3。我想为 v1 的每个类别在 v2 和 v3 之间绘制一个图。此外,在 v1 的每个类别的 v2 与 v3 的图中,我重复了 v2 的类别。对于 v2 的每个类别,v3 的多个值。我实际上想为 v2 的每个类别绘制 v3 的平均值。我使用了 lattice xyplot() 但它没有提供所需的结果(它为 v2 的所有类别绘制了 v3 的所有个体值)。你能在这方面帮助我吗?数据示例及代码如下

v1 <- rep(c(2,4,6,8,10), each = 6)  
v2 <- rep(1:3,10)  
v3 <-runif(30,0.01,0.3)
combined_data <- data.frame(v1,v2,v3)  
xyplot(v3 ~ v2|v1, data = combined_data, type = "o")

【问题讨论】:

  • 我会使用bwplot。如果您指定它们,则不给出 tmeans 但更喜欢中位数。如果您希望看到对基本@9​​87654323@ 的修改以在其中插入行,我敢肯定之前已经在 SO 上提出过问题并得到了回答。
  • 能否根据bwplot在这里提一下代码?

标签: r plot lattice


【解决方案1】:

您通常需要在 bwplot 调用的 RHS 上具有 as 数据类型,但交互函数确实提供了该功能:

bwplot(v3 ~ interaction(v2,v1), data = combined_data,horizontal=FALSE)

【讨论】:

    【解决方案2】:

    尚不完全清楚您要做什么,所以这里有三种使用ggplot 的可能性。

    library(ggplot2)
    # lines and points; similar to type="o" with xyplot(...)
    ggplot(combined_data,aes(x=v2,y=v3))+
      stat_summary(fun.y=mean,geom="line",color="blue",linetype=2)+
      stat_summary(fun.y=mean,geom="point", pch=1,size=3)+
      scale_x_continuous(breaks=combined_data$v2)+
      facet_grid(~v1)+
      theme_bw()
    

    # bar plot
    ggplot(combined_data,aes(x=factor(v2),y=v3))+
      stat_summary(fun.y=mean,geom="bar",color="grey50",fill="lightgreen")+
      facet_grid(~v1)+
      theme_bw() + labs(x="v2")
    

    # boxplot
    ggplot(combined_data,aes(x=factor(v2),y=v3))+
      geom_boxplot(color="grey50",fill="lightgreen")+
      facet_grid(~v1)+
      theme_bw() + labs(x="v2")
    

    【讨论】:

      猜你喜欢
      • 2011-03-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-01-10
      • 2020-12-01
      • 2020-10-25
      • 1970-01-01
      相关资源
      最近更新 更多