Giter Site home page Giter Site logo

msg's Introduction

R-CMD-check

This is an R package for my Chinese book Modern Statistical Graphics, which is hosted in the repo https://github.com/XiangyunHuang/MSG-Book.

这是为《现代统计图形》一书编写的 R 附加包 MSG(Modern Statistical Graphics 的缩写)。该包目前已经发布到 CRAN,所以读者可以用以下方式直接安装:

install.packages("MSG")

或者安装开发版:

remotes::install_github("yihui/MSG")

在 R 中加载:

library("MSG")

这里,我们简要介绍一下它包含的函数和数据。更为详细的信息见帮助文档或《现代统计图形》一书。

函数说明 {#sec:MSG-fun}

andrews_curve() : 根据数据矩阵画调和曲线图。

char_gen() : 给定一个长度为 2 的字符向量,生成一个字符矩阵,其中包含若干个第 2 个字符和一个第 1 个字符,看用户从一大堆第 2 个字符中辨别第 1 个字符的难度。这可以是我们选择点的外观的一种依据。

cut_plot() : 将一幅散点图的横坐标离散化,并计算每组内点的纵坐标的均值。

heart_curve() : 画心形曲线,用作低层作图函数的练习。

msg() : 重现书中插图及其源代码。

vec2col() : 将一个向量通过 RColorBrewer 包中的调色板转化为颜色向量。

数据说明

assists : 湖人和骑士比赛中的助攻数据。

BinormCircle : 人造数据:两个独立的正态分布随机变量(10000 行实现值),加上半径为 0.5 的圆上的点的坐标(10000 行)。

canabalt : 游戏末日狂奔中的得分和游戏设备数据(从 Twitter 消息获得)。

ChinaLifeEdu : 2005 年**各省市的人均预期寿命和受高等教育人数。

Export.USCN : 1994 年到 2004 年中美出口额数据。

gov.cn.pct : 某国政府网站中出现的各个百分比数据的频数(2009 年 12 月 17 日通过 Google 抓取)。

murcia : 西班牙 Murcia 省的土壤成分数据。

music : 四类艺术家的音乐频率数据,两类来自古典乐,两类来自摇滚乐。

PlantCounts : 植物数目与海拔高度的数据,共两列,每一行数据记录了某一海拔高度上植物数目。

quake6 : 1973 年到 2010 年全球地震中超过 6 级的地震数据,包括经度、纬度、时间等信息。

tvearn : 2011 年 2 月最高收入的美剧演员数据,包括收入、电视剧类型、性别、电视剧评分等信息。

msg's People

Contributors

chuxinyuan avatar pzhaonet avatar xiangyunhuang avatar yihui avatar yulijia avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar

msg's Issues

要调查的问题

  1. 你喜欢看高亮的代码还是纯黑色的代码?
  2. 你是否看了作者导读并按导读选择适合你自己的阅读顺序?还是直接从第一章依次看到附录?

> 和 +是否要保留?

如果保留,看电子版的读者复制粘贴代码时还得去掉这两个字符,麻烦;如果不保留,似乎又有点不习惯。

ZQ反馈

  • 建议最终版不用CC授权

  • 从目录看,是否那些插图和表格也应该列在头几页?! 按照 OREILLY 的慣例是列在最后的索引的(且感觉图目录提前不必要)

    当前这书的定位很模糊

  • 从成书过程来看,开始只是介绍R语言,后来发觉要成书,这才追加了很多背景式常识

  • 比较认可的,每章节之前 福尔莫斯 的节选,很应景

  • 无法认同的是这书没有前后逻辑的设定,如果只是私人给同事们传阅的资料,这样没有问题

  • 但是,作为作者字里行间表达出的,想通过这书,将统计图形这一领域介紹给国人,就完全不对路了

从 认知 心理学来说,**人那种喜欢权威,喜欢大部头,喜欢死记硬背的学习方式,早已落后了;

  • 激发出读者的兴趣,应该是每一本技术图书每一章节必须放在第一位的要素!
  • 俺假定,这书的目标读者是这样的:
    • 有点编程经验
    • 有点儿统计学知识
    • 从事可能的相关工作,正好需要知道,有什么工具来代替 Excel 给BOSS 提供鲜明的图表!
      那么,图书的内容应该遵循一个由浅入深的 现代统计图形 训练/旅游之行!
      大纲:
      • 给出一批历史上的经典统计图形案例,解说各种图元当初发明的目标,以及现在常见的使用领域
        /
        历史经典 => 目标是引发统计图形现代进步的好奇;解决是什么的问题;

        | + 数据至上;节约墨水;设计布局;就地解释;兼顾心理;统计原则;
        | / 针对历史经典和当代经典来分享成功的统计图形应该的特性
    • 原则 => 目标是形成一个成体系的现代统计图形的目标范畴;解决要什么的问题;

      | / 工具,给出统计图形工具的大至变迁,引出 R
      • 工具 => 目标是建立基础工作环境,最好给出各种图形工具的对比,来解决为什么R 的问题!
        \
        |
        | / 数据类型/案例,通过经典的现代领域问题的图形设计解决,来展示R 的优秀
      • 数据 => 目标是演示前述原则在 R 工具中的解决流程,以及各种原则的均衡技巧

        | / R 工具体系中各种内置/第三方 系统的选择/使用/专长
      • 系统 => 进一步使用前一章节的相关经典领域数据案例,通过使用更加方便的 R 系统来创建图形

        + 附录A 附录A 程序初步 R图元 原先第三章 的各种元素的介绍,脱离了具体案例时,不应该单独成章,作为辅助查阅内容就好 + 附录B R图库 原先第四章 在前述案例深入重构时,没有涉及的,收集在这儿,原因同上
        + 附录C R技巧 + 附录D 图形界面
        `+ 附录E 配套R 包

其实,也不一定叫附录,完全可以象 Nginx 高级应用什么的图书,将关键重要常见的细节技术手册精简为专门一部分;
整个图书其实是个3步曲:

  • 第一部分 故事/行文

  • 第二部分 技术参考

  • 第三部分 查遗补漏,交流情感...

    这样的话,只要注意内容的比重,就是本兼顾实用和入门的图书了,有什么需求的人看什么部分就好
    而且,在故事部分,如果涉及复杂的技术背景,就可以直接引用到后面的相关章节...
    嗯嗯嗯,就象 可愛的Python 的图书结构设计,将图书当成一个网站来组织了...

总之,个人以为,这类新技术的推广图书,要自身设计好读者的学习心理/知识变化线路图,不能由自个儿的价值观,想怎么堆就怎么堆,毕竟图书不是开发手册的汉化...

比如说,相关图书的阅读体验:视觉化软件工程 (评论: 可视化数据)
http://book.douban.com/review/2909982/
当读者过了初期的大致内容把握后,就立即会判定是否现在需要继续看,还是当成字典,以后用时再看
所以,好东西,一定要放在前面!
"本书的写作目的正是希望能够基于“器”的练习和启发,让读者在统计数据处理和分析中真正得“道”,使统计图形在数据的探索分析中发挥福尔摩斯探案般的功效。"

  • 这个命题很难以接受哪,一般人很难有机会和时间进行大量的这种练习
  • 而且,从图书现有内容安排来说,也没有趋向道 的引导哪,多数是对 R 工具能力的罗列
  • 数据统计 在**早已被Excel 了,几乎所有企業,都在使用 Excel 进行统计图表的生成,谁都会,也看得懂
  • 那么"现实情况是我们了解的图形种类太少、使用的作图工具缺乏灵活性,这在很大程度上制约了统计图形的发展,使得统计图形在数据分析中应有的潜力没有被充分挖掘出来"
    这种情况,太多人根本没有意识到!
    • 通过 第一章 历史经典统计图形的解说,可以起到开眼的功能
    • 但是,怎么有效的引导读者反出 Excel ,重构统计图形的概念,以至愿意沉心下来学习 R?!
    • 就得首先解决,为什么 Excel 图表不给力的问题... 这一点,只是简单的引用了外国人的说法,没有力量哪!
      应该,将 Excel 不时的拿出来,从最终成品,到制作过程,都和 R 进行对比,展示出:
      • CLI 的优点
      • 图形工具复用可自动化的优点
      • 复杂数据的科学展示能力
        ...

我想,作者在 统计之都的历次R语言学会 中,应该听到过很多经典的 Excel 不给的案例,多拿这些实例来说吧;

  • 也容易将读者通过熟悉的情景代入进来,自个儿感动自个儿!
  • 特别是大家长年被 Excel 仅有的几个图表形式包围,根本没有听说过其它专门的形式,一下见到这么多,都应该用在什么场景中,这才是最最最应该分享的!

作者在最初写这本书的时候,假定读者是统计专业学术人士,但是:

  • 这是作者当初的动力和设想,但是,面临出版社出版时,面对整个市场时目标人群完全不同了
  • 何况,R 的用户群在**有多少?! 他们发出的声音,可以对社会习惯/图书市场产生什么影响?!
  • 数据可视化,虽然在人类社会存在了也有上千年了,但是结合计算机技术,并变成越来越专业化产业化的领域,也刚刚开始
  • 整个领域还在科普初期,直接进入血淋淋的技术细节,对于图书不是好事儿
    • 积习婎改
    • 被 Excel 污染了这么多年
    • 任何一个感受到其它工具体系之美的技术人员,都有义务扼住任何机会来向公众宣传真实的领域现状!

满足专业人士,也可以满足大众,并不冲突:

  • 那是必须的哪!
  • 专业人士肯定不是出版界的从业人士,自然对于**的图书市场现状没有什么感觉的
  • 领域专业人士,当然有了太多预设的知识背景,俺猜,对于入门的介紹什么的,基本不会看的,就是檢查了一下技术细节,看是否有出入,正确而已
  • 对于图形统计,数据可视化,俺一直感觉这是个技术*艺术 的跨界领域, R/Processing
    之类的高级工具也不过是部分代替了人的艺术创作,真正振憾人心的统计图形一定是包含了大量的艺术原则和目标对象的深切理解之后的综合创造;
  • 这点,不论R 玩的多么熟悉,如果意识不到的话,没用的...
  • 所以,这方面的分享/解析/说明,内容太少了...
  • 丰田相关图书中,就有描述,丰田的可视化战略,将一切企业内部关键因素集中在一个界面后产生的质变
  • 图形化统计,怎么和相关领域问题,结合,产生惊人的效果,这才是这类图书的使命
    因为,R等等专业工具的誕生,并不是单纯的技术需要哪...

缩小图片

5.24、5.25、5.32、5.33、5.39、B5

并尽量保证文字连贯性

[误报]

IGNORE ME。我瞎了,命令输错了,抱歉。

Nomogram

http://en.wikipedia.org/wiki/Nomogram

看起来很酷,但只是在那个时代下很酷而已,在计算机普及的今天,它的唯一价值大概就是考古了……谁会用那么残酷的方式去做卡方检验啊

把书里所有的作图代码全部写进包里

把书里所有代码做出来的图的代码,加上详细注释,全部写进 MSG 包里,并且在书里相应的位置说明,例如在图的 Caption 里。

这样做的好处有三:

  1. 保持全书的一致性。目前有些地方是全代码,有些地方用 demo(),风格不统一。
  2. 方便读者重现图形。一句代码出图,从读者角度会很爽。也方便那些 R 初学者或者非 R 用户,说不定因为这个就爱上 R 了。
  3. 方便更新升级。万一将来因为各种变化导致书里的大段代码失效,至少读者可以运行 demo() 来画图和获取新代码。这样,书的生命力会更久。这个意思可以在前言里说明。

甚至可以在 demo 里写个 hello.R,作为开场白。当然也可以写进 vignette 里。

不过,我没有写 demo 的经验,不知道这样会不会在 CRAN 审查的时候出现一些麻烦。比如在包的函数里是不许有中文字符的,那么 demo 里呢?demo 里加载的包,是否需要在 DESCRIPTION 里声明?增加很多demo的话,会不会给 MSG 包的后期维护带来太多麻烦?

data(cn_vs_us) 里的 Market capitalisation 数据

古统第 6.2.4 小节“中美国力”中有段话有些让人费解:

我们在检查《卫报》提供的数据表时发现表中“市值”(Market Capitalisation)一栏中美数据被颠倒了,对比原图和我们重画的图让我们很快注意到了这个差异。

“对比原图和我们重画的图”,看不出这个差异。

对比《卫报》的条形图、data(cn_vs_us) 中的数据以及重新绘制的条形图,三者是一致的,皆是 China 3.6,America 15.0,并没有看到哪里“颠倒”。

那么,书稿里的意思是不是说,《卫报》数据表里错写成了 China 15.0,America 3.6,他家自己的表跟图不一致?而 MSG 包里的数据已经订正了?书稿中没有给出《卫报》提供的数据表,我搜也搜不到。

如果是这样的话,我觉得应该在书稿里体现出这种不一致。比如说,让 cn_vs_us 数据与《卫报》原始数据一致,将错就错,这样就可以体现出书稿里想表达的“数据的录入错误无处不在,而看数字不如看图形更直观这一点也让我们相信图形在检查错误方面有其特殊价值。”同时在 cn_vs_us 数据的帮助文档里说明一下就可以了。

递归树

http://cos.name/cn/topic/105708

drawTree <- function(x1, y1, angle, n, lwd, len, col) {
    if (n >= 1) {
        x2 <- x1 + cos(angle) * len[n] * 10
        y2 <- y1 + sin(angle) * len[n] * 10
        lines(c(x1, x2), c(y1, y2), lwd = lwd[n], col = col[n])
        drawTree(x2, y2, angle - pi/9, n - 1, lwd, len, col)
        drawTree(x2, y2, angle + pi/9, n - 1, lwd, len, col)
    }
}
par(mar = c(0, 0, 0, 0))
plot(0, xlim = c(-260, 260), ylim = c(0, 450), type = "n", axes = F)
drawTree(0, 0, angle = pi/2, n = 9, lwd = 1:9, len = 1:9,
        col = rev(terrain.colors(16)[1:9]))

真正的现代

这位大人说的不错,考虑一下:

對於內容而言,其實《現代統計圖形》所講述的內容已經算很經典的了,data visualization在近十年隨著互聯網的崛起有很大很大的發展,基本所有的美術院系都在開data visualization的課,包括我們學院(建築和美術在賓大是一個學院下的)。所以R其實已經不能完全滿足「現代統計圖形」的需求了。我很希望看到除了這些經典的以外,作者另加一章,展現現代發展的動態,作為一個補充。

OR还是RR

这位Hcydlee说的应该是对的: http://yihui.name/cn/publication/#comment-567199691

5.13 四瓣图的说明中,将OR的定义为(P1/(P1+P3))/ (P2/(P2+P4)),但实际上,在我们流行病学和医学研究中该值是RR值(Relative Risk,或者Risk Ratio)。相应的OR值的定义是P1P4/P2P3,在发病率较低的疾病中,OR值是RR值的一个近似。也就是说公式5.7才是OR的定义(约等于号也应改为等号),而公式5.6应该是RR值的定义。

2011.11.22若干想法

章节重构

  • 取消附录,不能因为LaTeX有\appendix命令就一定要放附录,太学究气了
    • par()plot()两节从纸质书中扔掉,因为它太冗长乏味,纯属浪费纸张,不如做成单独的小册子挂网上,也好早点造福他人
    • 程序初步简化之,融入工具章,或者将长版本抽出放网上公开浏览
    • 细节技巧:数学公式、一页多图、图形设备没必要独自成节,融入工具章、交互操作融入“系统”一章中
    • 图形界面:融入系统章
    • 本书R包:撤掉,直接放入R包,或者放入此处Wiki页面
  • 原则章提前为第二章
  • 工具为第三章,增加Excel及其它软件对比,要有足够的说服力,撼动Excel用户不容易
    • CLI为什么强悍,给几个例子,人工操作累死你,CLI只需要喝咖啡等着就好了,纽约时报Amanda、FL的Nathan都提过
  • 数据为第四章
  • 系统第五章
  • 图库第六章
    • R cookbook式,例子上前,代码说明靠后
    • Visualize This(我肯定写不了他那么长,但样式可以学习,用小案例)
  • 元素第七章,九阴真经最后一重

理智与情感

  • 保持客观,客观,客观。我用R已经七年,而读者拿到这本书时可能不知道R是什么,如果我回到大三,我是否会看这本书?

结构调整

第5章小节内部结构,把具体案例提前,再说明为什么采用某种图形,最后再点出如何用R语言实现。第8章“原则”提前,因为这部分普通读者都能够看懂,读者的学习曲线也比较平滑,原则放在前面讲,也是对后文各种图形应用的指导。第3、4章只是针对R的作图功能介绍,将这些仅与R相关的内容剥离,放到附录中,供需要的读者扩充阅读。

另外完成第2章的阅读后,读者具备的R语言基础并不足以顺利开始第3章的阅读,在知识点安排上不大合理。因此可以考虑把这些内容放在附录中,将2、3、4这3章作为一个R做图功能的简单教程。

alpha-blending之类的东西

有一个小小小小的建议,如果以后还需要增加一点进阶内容的话,不妨在颜色透明度属性的基础上稍微讲讲alpha-blending之类的东西,《Graphics of Large Datasets》的第三章和第四章有写一点这方面的内容。看得不是很懂,不过感觉这玩意的确有点用处。

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.