• R语言
  • 请问如何用ggplot画出曲线簇?

dapengde
以赛代练是好主意,只是开始的阻力较大,我对 git 的了解,仅限于用它推过文章;用它做别的事情,感觉无从着手。你知道有什么材料适于新手学习吗?

    Liechi dapengde fork commit push merge 会这些基本就够了。如果再遇到什么其它的操作可以参考这个查询手册 <https://github.com/521xueweihan/git-tips> 然后就是放狗搜,最后就是拿出来问,比如我以前问的 <https://d.cosx.org/d/420426>

    Liechi 如果真的那么惧怕 Git 不妨先 fork 这个项目,然后在自己 fork 的项目里修改, RStudio 里提交 commit,推送到 Github 后,手动提交 PR。大多数情况下,我也是在 RStudio 里弄

      Cloud2016

      好的。可以在 readme 里列个任务分配表,把正在做的标识出来,剩下的任人认领。这个表我可以做。

      你的邀请邮件我收到了,然而点了之后进去的不是 /invitations 页面,所以没法接受邀请。

        dapengde 看来这个是我单方面决定的,从设置里可以看到,你已经在合作者列表里了

        好啊,你来加任务分配表

          Cloud2016

          然后用它打开 Modern-Stat-Graphics.lyx 或者依据 Modern-Stat-Graphics.tex 文件复制文字(我没找到更方便的转化方式),把文字复制出来后,再在相应的地方以 R Markdown 的方式把 R 代码块和图片插入。

          我用了一个稍微省事的办法:先用 pandoc 把 tex 文件转成 markdown,再把后者拷贝粘贴进 .Rmd文件。

          pandoc 转换全书的话出错。我就只转了第 2 章,尚可。只是代码部分全丢失了,需要从 lyx 文件里手动拷贝粘贴。不过这样也有好处,就是顺便把 sweave 的图片选项也拷进了 .Rmd 的 chunk 选项里,最大程度保持跟原稿的一致。

            Cloud2016 关于图、表、章节的交叉引用,我们可否做如下约定?即

            1. 沿用原稿的图表标签 (label) 不变,除非原稿有错误。
            2. 在章节标题后面添加标签,与原稿标签一致。

            这样的好处是,跨章节的交叉引用只需大体过一遍就基本不用改了——虽然后面的章节还没搬过来,暂时会显示为问号。

              dapengde 我就是这么干的,除非图、表的引用有问题,比如我看到图的 chunck option 里有这样的标签heart_curve 我就把它改为 heart-curve

              至于文中还没有说明需要哪些 R 包,我们暂不添加类似安装 R 包的代码

              if(!require('MSG')) install.packages('MSG') # 安装本书配套的MSG包

              一方面是我打包镜像的时候几乎把所有需要的 R 包都打包了,如果本地缺的话,就自己安装下。

              另一方面是我觉得 @yihui 有必要在合适的地方添加一小节说明本书用了哪些 R 包,至少提供 xfun::session_info(pkgs),这是他的一贯做法,我也比较喜欢这种方式。或者告诉读者怎么获取和使用我打包的镜像文件,以及如何在容器中编译书籍,这个过程其实我公开了,目前,我让 Travis 就是这么干的。基本上不用操心依赖问题,我来操心就好了!

              Cloud2016 我对通过 github 合作这样的工作模式有点认知障碍,不是怕具体的 git 命令。谢谢你跟大鹏的建议,我先从 TNT 上手吧。

              dapengde 我原想先不考虑图的尺寸问题,这个想放在最后排版的时候考虑,届时设置全局选项对网页版和 PDF 版里的图片尺寸进行不同的控制,以期达到最佳的显示效果,不过既然你可以比较轻松地将原来的图片设置搬迁过来,不妨先设置着也好

                Cloud2016 好,就按你说的办。

                此外,关于体例,原稿里说:

                正文中的代码以等宽正体表示,如“inline R code ”,函数名称以斜体表示,如“function() ”,对象类名称和参数名称用无衬线字体表示,如“class using sans serif ”,R 程序包用粗体表示,如“package ”...

                我看到你在“导读”里将函数名以行间代码的等宽字体来表示,而我在第 2 章是按原稿的斜体处理的。这一点还是事先统一一下为好,免得返工。

                还有,“对象类名称和参数名称用无衬线字体表示”,这个我还没弄懂如何在 bookdown 里实现。

                关于书稿里要不要安装包的代码,我的考虑是用户下载这个项目后可以直接本地编译成书,一气呵成。如果另辟章节说明,对于初级用户可能是个障碍。我觉得折中的方法是让这段代码以 echo=FALSE 的形式偷偷藏在书稿里。

                楼歪太多了,真不知道要不要另开一帖。

                  dapengde 另辟一个小节就是在开始告诉他们运行环境或者重现本书介绍的内容需要的软件工具,或者干脆隐藏这么一段

                  # 这只是 R 包
                  lapply(c('pkg1',"pkg2"), function(pkg) {
                    if (system.file(package = pkg) == '') install.packages(pkg)
                  })

                  你说函数名是按斜体还是代码的等宽体,我当时是图方便,还有也把它看成代码了,直接反引号包裹貌似更常见。 R 包加粗,我还没有加

                    Cloud2016 斜体还是等宽,我觉得无所谓,只要统一就行啊。我是用 pandoc 从 .tex 转成 .md 的,所以保留了原稿里函数名用的斜体格式,以及 R 包名加粗格式。@yihui 当初将函数名跟代码以两种格式表示,有什么特别的考虑吗?

                    还有,在原稿的 .tex 文件里,那个无衬线字体是用[data frame]{.sans-serif}这样的格式来实现的。我们在 bookdown 里该如何处理?

                      dapengde 斜体还是等宽,我觉得无所谓,只要统一就行啊。

                      完全赞同。

                      dapengde 没有什么特别考虑,因为 LaTeX 太灵活了,所以各种花里胡哨的字体格式都用上了(即拿着锤子就想着找钉子)。现在我肯定不会用这么多种样式。近年来我只用加粗(包名,双星号)和等宽字体(代码,反引号),不再作更细致的区分:https://bookdown.org/yihui/rmarkdown/software-info.html

                        5 个月 后

                        albert-R stat_function这个方法突然不灵了,画出来的图是空的,不知道为什么。

                          1 个月 后

                          dapengde 在本地和 Rstudio Cloud 上运行了下,都没有问题啊。

                          > sessionInfo()
                          R version 3.5.2 (2018-12-20)
                          Platform: x86_64-apple-darwin15.6.0 (64-bit)
                          Running under: macOS  10.15.3
                          
                          Matrix products: default
                          BLAS: /System/Library/Frameworks/Accelerate.framework/Versions/A/Frameworks/vecLib.framework/Versions/A/libBLAS.dylib
                          LAPACK: /Library/Frameworks/R.framework/Versions/3.5/Resources/lib/libRlapack.dylib
                          
                          locale:
                          [1] en_US.UTF-8/en_US.UTF-8/en_US.UTF-8/C/en_US.UTF-8/en_US.UTF-8
                          
                          attached base packages:
                          [1] stats     graphics  grDevices utils     datasets 
                          [6] methods   base     
                          
                          other attached packages:
                          [1] ggplot2_3.2.0
                          
                          loaded via a namespace (and not attached):
                           [1] Rcpp_1.0.1       withr_2.1.2      assertthat_0.2.0
                           [4] crayon_1.3.4     dplyr_0.8.0.1    R6_2.4.0        
                           [7] grid_3.5.2       gtable_0.2.0     magrittr_1.5    
                          [10] scales_1.0.0     pillar_1.3.1     rlang_0.4.0     
                          [13] lazyeval_0.2.1   rstudioapi_0.9.0 labeling_0.3    
                          [16] tools_3.5.2      glue_1.3.1       purrr_0.3.1     
                          [19] munsell_0.5.0    yaml_2.2.0       compiler_3.5.2  
                          [22] pkgconfig_2.0.2  colorspace_1.4-0 tidyselect_0.2.5
                          [25] tibble_2.0.1    

                            albert-R 奇怪,前些天我发现 TNT 擂台赛 这幅地图画不出来,就在本地试了一下,也画不出来,就来这里提问了。但是现在我本地能画出来了,而擂台赛仍然没出来。等我有空再看看。