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

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 擂台赛 这幅地图画不出来,就在本地试了一下,也画不出来,就来这里提问了。但是现在我本地能画出来了,而擂台赛仍然没出来。等我有空再看看。