【问题标题】:How to combine multiple plot into one如何将多个情节合二为一
【发布时间】:2018-06-04 15:32:11
【问题描述】:

我正在尝试绘制数据的平均值、标准差和标准误差

数据表的样子

freq mean-minP mean-correctedminP sd-minP sd-correctedminP se-minP se-correctedminP
0.04 0.002253326 0.2570858 0.00281535 0.2299418 5.365941e-06 0.0004382595  
0.06 0.002215208 0.2555567 0.002724357 0.2261158 4.193085e-06 0.0003480172    
0.08 0.002229885 0.2580928 0.002688148 0.2257434 4.788916e-06 0.0004021602    
0.10 0.002259921 0.2614918 0.002692339 0.2255382 5.17569e-06 0.0004335695    
0.12 0.002252171 0.2615271 0.00266768 0.2239421 5.341592e-06 0.0004484073    
0.14 0.002279967 0.2620723 0.002773566 0.226358 5.726879e-06 0.0004673856    
0.16 0.00227563 0.2634223 0.002696895 0.2248959 5.812342e-06 0.000484695    
0.18 0.002325724 0.2680895 0.002727271 0.226968 6.08316e-06 0.0005062506    
0.20 0.002338423 0.2698884 0.002716278 0.2267581 6.19585e-06 0.0005172369

代码是

library(ggplot2)

x = read.table("mean-sd-se.txt", header =T)

as.data.frame.matrix(x) 

class(x)

jpeg('mean-minP.jpg')

ggplot(x, aes(freq, mean.minP)) +
  geom_point() +
  geom_errorbar(aes(ymin = mean.minP - se.minP, ymax = mean.minP + se.minP))

dev.off()

jpeg('mean-correctedminP.jpg')

ggplot(x, aes(freq, mean.correctedminP )) +
  geom_point() +
  geom_errorbar(aes(ymin = mean.correctedminP - se.correctedminP, ymax = mean.correctedminP + se.correctedminP))

dev.off()

第三个图表是

freq ben-minP sd se
0.04 2.272638e-05 2.446807e-05 2.446807e-06
0.06 2.913836e-05 2.863156e-05 2.863156e-06
0.08 3.554738e-05 3.428234e-05 3.428234e-06
0.10 2.748583e-05 2.544388e-05 2.544388e-06
0.12 2.699006e-05 2.334158e-05 2.334158e-06
0.14 2.688554e-05 2.607751e-05 2.607751e-06
0.16 2.791795e-05 2.749683e-05 2.749683e-06
0.18 3.163485e-05 3.127313e-05 3.127313e-06
0.20 2.905028e-05 3.089178e-05 3.089178e-06

我想用不同的颜色将所有这些图合二为一

【问题讨论】:

  • 我认为他想要色彩美学,而不是刻面
  • @Moody_Mudskipper 你能修改脚本来得到那个
  • 您是否要覆盖所有三个图?即使有不同的颜色和透明度,那也会更加混乱。更不用说规模会有所不同。
  • @user我实际上想这样做,但我会很感激建议。我使用提到的帮助并排创建

标签: r ggplot2


【解决方案1】:

你去吧,最棘手的部分是塑造数据,我为此使用tidyverse

library(tidyverse)
tidy_df <- df %>%
  select(freq,mean.minP,mean.correctedminP,se.minP,se.correctedminP) %>%
  gather(,,-1) %>%
  separate(key,into = c("fun","var")) %>%
  spread(fun,value)

tidy_df
#    freq           var        mean           se
# 1  0.04 correctedminP 0.257085800 4.382595e-04
# 2  0.04          minP 0.002253326 5.365941e-06
# 3  0.06 correctedminP 0.255556700 3.480172e-04
# 4  0.06          minP 0.002215208 4.193085e-06
# 5  0.08 correctedminP 0.258092800 4.021602e-04
# 6  0.08          minP 0.002229885 4.788916e-06
# 7  0.10 correctedminP 0.261491800 4.335695e-04
# 8  0.10          minP 0.002259921 5.175690e-06
# 9  0.12 correctedminP 0.261527100 4.484073e-04
# 10 0.12          minP 0.002252171 5.341592e-06
# 11 0.14 correctedminP 0.262072300 4.673856e-04
# 12 0.14          minP 0.002279967 5.726879e-06
# 13 0.16 correctedminP 0.263422300 4.846950e-04
# 14 0.16          minP 0.002275630 5.812342e-06
# 15 0.18 correctedminP 0.268089500 5.062506e-04
# 16 0.18          minP 0.002325724 6.083160e-06
# 17 0.20 correctedminP 0.269888400 5.172369e-04
# 18 0.20          minP 0.002338423 6.195850e-06

ggplot(tidy_df, aes(freq, mean,color=factor(var))) +
  geom_point() +
  geom_errorbar(aes(ymin = mean - se, ymax = mean + se))

抱歉,我无法从这台计算机上传图片。那是你想要的吗?值非常不同,所以它不是那么可读。

如果您想在一张图表上放置 2 个比例尺,使用 ggplot2 一点也不简单(不过我们可以重新调整数据比例)。

数据

df <- read.table(text=
"freq mean-minP mean-correctedminP sd-minP sd-correctedminP se-minP se-correctedminP
0.04 0.002253326 0.2570858 0.00281535 0.2299418 5.365941e-06 0.0004382595  
0.06 0.002215208 0.2555567 0.002724357 0.2261158 4.193085e-06 0.0003480172    
0.08 0.002229885 0.2580928 0.002688148 0.2257434 4.788916e-06 0.0004021602    
0.10 0.002259921 0.2614918 0.002692339 0.2255382 5.17569e-06 0.0004335695    
0.12 0.002252171 0.2615271 0.00266768 0.2239421 5.341592e-06 0.0004484073    
0.14 0.002279967 0.2620723 0.002773566 0.226358 5.726879e-06 0.0004673856    
0.16 0.00227563 0.2634223 0.002696895 0.2248959 5.812342e-06 0.000484695    
0.18 0.002325724 0.2680895 0.002727271 0.226968 6.08316e-06 0.0005062506    
0.20 0.002338423 0.2698884 0.002716278 0.2267581 6.19585e-06 0.0005172369",
h=T)

【讨论】:

    猜你喜欢
    • 2014-10-11
    • 2019-01-16
    • 1970-01-01
    • 2012-12-30
    • 2022-01-04
    • 1970-01-01
    • 2021-03-05
    • 1970-01-01
    相关资源
    最近更新 更多