如何在R中使用ggplot2绘制相似的图?

乌丁

对于以下数据集,我想为每个变量绘制图,并为每个第十个观察值分别上色。我可以用R基来做。我想学习如何使用ggplot2吗?

dput(mydata)

structure(list(beta0_C1 = c(5.90722120539152, 5.89025566996191, 
5.88591520258904, 5.86911167649919, 5.93772460437405, 5.92985640353594, 
5.89150365752453, 5.99046628686212, 5.91548006074821, 5.91571832976612, 
5.88437484241154, 5.92092513223357, 5.98978050584774, 5.91152552752889, 
5.91235823292462, 5.87961960044268, 5.84048698713552, 5.85484766204026, 
5.94002829943904, 5.8844367778216, 5.90201348639369, 5.91220967575205, 
5.90010933186624, 5.9187781795242, 5.85506764080697, 5.90103565341373, 
5.88527143992961, 5.90218851192948, 5.90118162849608, 5.93147588185271
), beta1_C1 = c(0.389473200070741, 0.386495525456602, 0.401277295631578, 
0.400952009358693, 0.376727640651344, 0.380365338054745, 0.393444927288697, 
0.351041363714069, 0.393194356572458, 0.393448101768608, 0.398884551136789, 
0.399458966787235, 0.357436746423815, 0.393782316102096, 0.387154169967002, 
0.400838223362088, 0.404272252119662, 0.407427775176583, 0.379704250022161, 
0.388842664781329, 0.382202010301184, 0.401354531881688, 0.391184010553641, 
0.390280828053183, 0.402135923802544, 0.384344141458216, 0.405409447440106, 
0.391719398951194, 0.398025625260563, 0.361822915989445), beta2_C1 = c(-0.0214886993465096, 
-0.020723519439664, -0.0224612526333316, -0.0218187226687474, 
-0.0200324040063121, -0.0208421378685671, -0.0218756660346625, 
-0.0182499666400075, -0.0222765863213226, -0.022242845613047, 
-0.0222033291270054, -0.0231570312767931, -0.0189429585905841, 
-0.0221017468740293, -0.0209327798783444, -0.022409049257, -0.021698958175968, 
-0.0225601087054418, -0.020928341508875, -0.0214668830626075, 
-0.0205872002686706, -0.0233768022702472, -0.021755967293395, 
-0.0218442145294776, -0.0222514480818199, -0.0212195394692002, 
-0.0232109717283908, -0.0214814999754984, -0.0225124468437127, 
-0.0187033387452614), beta0_C2 = c(6.50537199380546, 6.43626630601952, 
6.44460360859128, 6.44788878017196, 6.49678676895955, 6.48474789770674, 
6.5459727637079, 6.37593806532098, 6.39492158034295, 6.44497331914909, 
6.3888816168562, 6.49660574813212, 6.45922901141938, 6.40080765767324, 
6.37918638201668, 6.49354321098856, 6.47057962920788, 6.55699741431025, 
6.56617313133218, 6.54271932949381, 6.44608000042182, 6.45333777656105, 
6.67458442747556, 6.48420983182487, 6.59919337271637, 6.46645685814734, 
6.46171236062657, 6.52625058117578, 6.51177045919728, 6.49897849935538
), beta1_C2 = c(-0.370455826326915, -0.338852275811034, -0.340671118342601, 
-0.339888681238265, -0.36934391822867, -0.357194169746804, -0.415966150286963, 
-0.349051278947586, -0.358209379291251, -0.371785518417424, -0.349725822847608, 
-0.368220986471866, -0.327425879655177, -0.336993142255552, -0.328859493371605, 
-0.347764105375218, -0.329761787134926, -0.37935820670654, -0.400211161919931, 
-0.408699321227288, -0.357590345066542, -0.376548827126353, -0.44672514669147, 
-0.353840422053319, -0.421912098450693, -0.371491468175642, -0.354864346664247, 
-0.39139246919467, -0.379006372881295, -0.372492936183765), beta2_C2 = c(0.039728365796445, 
0.0368393936404604, 0.0375019672690036, 0.0375019364609944, 0.0403444583999664, 
0.0378627636833333, 0.0446717245407897, 0.0377538641609231, 0.039662572899695, 
0.0408055348533836, 0.0386737104573771, 0.0397794302159846, 0.0352739962796708, 
0.0376756204317514, 0.0370614500426065, 0.0374731659969108, 0.035366001926832, 
0.0397165124506166, 0.0414814320660011, 0.0431083057931525, 0.0388672853038453, 
0.0403590048367136, 0.0461540000449275, 0.0379315295246309, 0.0440664419193363, 
0.0404593732981113, 0.0387390924290065, 0.0417832766420881, 0.0409598003097311, 
0.0394548129358408)), row.names = c(NA, 30L), class = "data.frame")

R基础代码

 par(mfrow=c(3,3))
col.set=c("green","blue","purple","deeppink","darkorchid","darkmagenta","black","khaki")
loop.vector=1:ncol(mydata)
for(b in loop.vector) {
  x.beta<-mydata[,b]
  beta <- substr(sub("^beta", '', names(mydata)[b]),1,1)
  Cn <- substr(sub("^beta", '',names(mydata)[b]),3,4)
  plot(x.beta, type = "n", ylab="", xlab="",
       main=bquote(beta[.(beta)]~.(Cn)), 
       cex.main=1) 
  mtext("plots of betas",line=-1.5, cex=1, outer = TRUE)
  for (k in 1:3){
    beta_k=mydata[((nrow(mydata)/3)*k-((nrow(mydata)/3)-1)):
                           ((nrow(mydata)/3)*k),b]
    lines(((nrow(mydata)/3)*k-((nrow(mydata)/3)-1)):
            ((nrow(mydata)/3)*k),beta_k,
          col=col.set[k])
    legend("topleft", bg="transparent",inset=0.05,legend=paste0("chain_",1:3),
           col=col.set, lty=1,box.lty=0, cex=0.8)
  }
}

我要为每个地块使用相同的主标题,并为所有地块使用一个主要标题。这是预期的输出

我该如何使用ggplot2软件包呢?

肯特·约翰逊

ggplot2 最适合包含x,y,color等变量的长数据框。这将形成一个长数据框:

library(tidyverse)
long_data = my_data %>%
  mutate(n=1:nrow(my_data), chain=paste0('Chain ', rep(1:3, each=nrow(my_data)/3))) %>% 
  pivot_longer(cols=c(-n, -chain)) %>% 
  mutate(name=str_replace(name, '(\\d)_', '[\\1]~~'))

这使情节。

ggplot(long_data, aes(n, value, color=chain)) +
  geom_line() +
  facet_wrap(~name, scales='free_y', ncol=3, dir='v',
             labeller=label_parsed) +
  scale_color_manual('', values=c('Chain 1'='green', 'Chain 2'='blue', 'Chain 3'='purple')) +
  theme_minimal() 

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何在ggplot2或R中绘制雷达图

来自分类Dev

如何在 R 中使用 ggplot2 编辑图例?

来自分类Dev

如何在ggplot2中使用重复的x轴标签绘制折线图

来自分类Dev

如何在ggplot2中使用facet_grid制作甜甜圈图?

来自分类Dev

如何在R的ggplot2中绘制阶跃直方图?

来自分类Dev

如何在R中用ggplot2绘制的图的y轴刻度中准确显示数字的SI前缀?

来自分类Dev

如何在ggplot2地图上绘制条形图

来自分类Dev

如何在ggplot2中绘制裁剪的密度图而不会丢失部分

来自分类Dev

如何在ggplot2中绘制组合的条形图和折线图

来自分类Dev

如何在ggplot2中绘制裁剪的密度图而不会丢失任何部分

来自分类Dev

如何在R中使用ggplot绘制绘图区域的“外部”?

来自分类Dev

如何在R中使用ggplot绘制绘图区域的“外部”?

来自分类Dev

如何在R中使用ggplot绘制图形

来自分类Dev

如何在ggplot2中使用其他单值点制作小提琴图

来自分类Dev

ggplot2如何绘制多个区域图?

来自分类Dev

ggplot2如何绘制多个区域图?

来自分类Dev

使用ggplot2绘制大范围的热图

来自分类Dev

使用 ggplot2 绘制比例条形图

来自分类Dev

当数据是Tapply函数时,如何在R中使用ggplot2

来自分类Dev

如何在R中使用ggplot2为渐变上的多个geom_lines着色?

来自分类Dev

当数据是Tapply函数时,如何在R中使用ggplot2

来自分类Dev

如何在 R 中使用 ggplot2 为数据提供两个注释

来自分类Dev

如何使用ggplot2为分组条形图绘制误差线?

来自分类Dev

如何使用ggplot2在两条线之间绘制密度图?

来自分类Dev

如何在python中绘制与此相似的内容?

来自分类Dev

R-使用ggplot2创建的相关热图:如何在y轴上翻转标签?

来自分类Dev

在R中使用ggplot2在一个图中绘制多个直方图

来自分类Dev

R Shiny中使用ggplot2绘制绘图面板的可视化

来自分类Dev

在 R 中使用 ggplot2 绘制具有性别的年龄组

Related 相关文章

  1. 1

    如何在ggplot2或R中绘制雷达图

  2. 2

    如何在 R 中使用 ggplot2 编辑图例?

  3. 3

    如何在ggplot2中使用重复的x轴标签绘制折线图

  4. 4

    如何在ggplot2中使用facet_grid制作甜甜圈图?

  5. 5

    如何在R的ggplot2中绘制阶跃直方图?

  6. 6

    如何在R中用ggplot2绘制的图的y轴刻度中准确显示数字的SI前缀?

  7. 7

    如何在ggplot2地图上绘制条形图

  8. 8

    如何在ggplot2中绘制裁剪的密度图而不会丢失部分

  9. 9

    如何在ggplot2中绘制组合的条形图和折线图

  10. 10

    如何在ggplot2中绘制裁剪的密度图而不会丢失任何部分

  11. 11

    如何在R中使用ggplot绘制绘图区域的“外部”?

  12. 12

    如何在R中使用ggplot绘制绘图区域的“外部”?

  13. 13

    如何在R中使用ggplot绘制图形

  14. 14

    如何在ggplot2中使用其他单值点制作小提琴图

  15. 15

    ggplot2如何绘制多个区域图?

  16. 16

    ggplot2如何绘制多个区域图?

  17. 17

    使用ggplot2绘制大范围的热图

  18. 18

    使用 ggplot2 绘制比例条形图

  19. 19

    当数据是Tapply函数时,如何在R中使用ggplot2

  20. 20

    如何在R中使用ggplot2为渐变上的多个geom_lines着色?

  21. 21

    当数据是Tapply函数时,如何在R中使用ggplot2

  22. 22

    如何在 R 中使用 ggplot2 为数据提供两个注释

  23. 23

    如何使用ggplot2为分组条形图绘制误差线?

  24. 24

    如何使用ggplot2在两条线之间绘制密度图?

  25. 25

    如何在python中绘制与此相似的内容?

  26. 26

    R-使用ggplot2创建的相关热图:如何在y轴上翻转标签?

  27. 27

    在R中使用ggplot2在一个图中绘制多个直方图

  28. 28

    R Shiny中使用ggplot2绘制绘图面板的可视化

  29. 29

    在 R 中使用 ggplot2 绘制具有性别的年龄组

热门标签

归档