繁体   English   中英

如何在指定 x 轴标签的顺序时使用 ggplot2 在一个图上绘制两条线?

[英]How to plot two lines on one plot with ggplot2 while specifying order of the x-axis labels?

数据在“统计”中:

run       valence mean sd sem
Nnf1_mINS   n     2.1 .5 .01
Nnf2_mINS   p     3.2 .2 .01
Nobs_mINS   n     2.3 .1 .02

这是我的代码:

ggplot(stats,aes(x=run,y=mean,color=valence,group=1))+ 
    geom_point() +
    geom_line()+
    geom_errorbar(aes(ymin = mean - sem, ymax = mean + sem),                         
                  width = 0.2,
                  position = position_dodge(0.9))

3个问题:

  1. 为了指定 x 轴上的顺序,我将变量变成了一个因子:
stats$run <- factor(stats$run, levels = c("Nobs_mINS","Nnf1_mINS","Nnf2_mINS"))
  1. 但是要在一个图上绘制 2 条线,不能有因子变量。 这是错误:“geom_path:每个组仅包含一个观察值。您需要调整组审美吗?” 由于这篇文章,我通过添加“group=1”修复了这个错误: ggplot2 折线图给出了“geom_path:每个组只包含一个观察值。你需要调整组美学吗?”

  2. 由于某种原因,线路未正确连接: 在此处输入图像描述

好吧,group = valence 解决了这个问题! 这是编辑后的代码:

ggplot(stats,aes(x=run,y=mean,color=valence,group=valence))+ 
    geom_point() +
    geom_line()+
    geom_errorbar(aes(ymin = mean - sem, ymax = mean + sem),                         
                  width = .2,
                  position = position_dodge(.09))+
    theme(text = element_text(size=15),
          axis.text.x = element_text(angle=0, hjust=1))+
    scale_y_continuous(limits = c(-0.22, 0.1))

图表: 在此处输入图像描述

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM