在同一ggplot中绘制两个数据集

时间:2015-11-04 15:59:44

标签: r ggplot2 scatter-plot errorbar

我试图在同一个情节中一起绘制以下信息:

  1. 两个变量(jobcontroljobdemands)的散点图,五个组(class变量)的颜色不同。
  2. 对于五组中的每一组,我想显示两个变量(jobcontroljobdemands)的平均值,由水平的双误差条包围,用于X轴变量和垂直的Y轴变量。这应该是每个群体的集中趋势和分散。
  3. 数据摘录:

    > head(karasek1)
       jobcontrol jobdemands    class
              9         37          1
             26         37          1
              9         30          5
             NA         NA          4
             11         42          2
             29         42          1
    

    绘图方法和误差线的数据:

    desc2 <- data.frame(class=c(1:5),
                           jcmean = c(23.23, 24.79, 28.31, 23.26, 23.84 ),
                           jcse = c(5.95, 5.23, 6.05, 6.33, 5.91),
                           jdmean = c(36.40, 37.71, 38.16, 35.04, 36.48),
                           jdse = c(5.86, 5.23, 5.39, 6.60, 5.90))
    

    这是我的临时解决方案:

    library(ggplot2)
    ggplot(data=karasek1,aes(x=jobdemands,y=jobcontrol,color=class,shape=class))+
      geom_point(size=1) +
      geom_errorbar(data=desc2,aes(ymin=jcmean-jcse,ymax=jcmean+jcse),width=.1,position =position_dodge(0.1)) + 
      geom_errorbarh(data=desc2,aes(xmin=jdmean-jdse,xmax=jdmean+jdse),width=.1,position =position_dodge(0.1))
    

    它不起作用,它与两个数据组合在一起,因为错误信息是:

    Error in eval(expr, envir, enclos) : object 'jobdemands' not found
    

    另一个问题是我不知道如何根据class的不同值使这些误差条变色,因此有五个“十字”并且可以识别它们。

    非常感谢!

0 个答案:

没有答案