博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
R语言--ggplot2包
阅读量:5954 次
发布时间:2019-06-19

本文共 1251 字,大约阅读时间需要 4 分钟。

由于python中matplotlib包的画图功能比较基本,不怎么炫酷,所以想用R中的ggplot2来作图。用mysql作为数据中介,可以让python和R共享数据,这样数据处理起来能发挥各自优势,同时保持数据一致,而用R来做图也就方便很多了。

原来在做数据可视化的时候用过ggplot2,不过没有系统学过,现在再学一遍。《ggplot2:数据分析与图形艺术》是一本全面的书,可以作为工具书。这次复习看的是知乎上的一个问题:

上面的回答很精炼,谢谢所有答主。

--

首先是ggplot2的思想:

  • 作一张图就是将数据特点映射到点、线等几何对象的大小、颜色等属性上
  • 一张统计图还可能包含数据的统计变换(均值、方差等,stats),最后绘制在某个特定的坐标系(coord)中,还可能有分面(facet,将绘图窗口划分为若干子窗口)用来生成数据不同子集的图形
  • ggplot2的作图方式是按照图层作图,先设置一张“画布”,然后再向“画布”上添加一层一层的图层(会ps的同学会觉得很熟悉)

几个概念:

  • 几何对象(geom_):代表在图中实际看到的图形元素,如点、线、多边形等
  • 图形属性(aes):横纵坐标、点的大小、颜色,填充色等
  • 统计变换(stat_):对数据进行的某种汇总与变换等
  • 标度(scale):其作用是将数据的取值映射到图形空间,例如用颜色、大小或形状来表示不同的取值。展现标度的常见做法是绘制图例和坐标轴--他们实际上是从图形到数据的一个映射,使读者可以从图形中读取原始数据
  • 坐标系(coord):描述了数据时如何映射到图形所在的平面的,它同时提供了看图所需的坐标轴和网格线
  • 分面(facet):描述了如何将数据分解为各个子集,以及如何对子集作图并联合进行展示。

书上说的作图语法的局限性:

  • 对于感兴趣的问题,并不指出应该采用什么图形来进行展示,语法只能提供关于作图流程的说明,并不能告诉你作什么图合适
  • 语法并不规定图形的外观是怎样的,应该根据经验确定
  • 并没有交互式操作,ggplot2只能绘制静态图形(?)想绘制交互式图形需要看其他文献

一个小例子:

library(ggplot2)   #加载包x <- rnorm(100,14,5) #生成100个均值为14,方差为5正态分布随机数y <- x + rnorm(100,0,1)p <- ggplot(data = NULL) + aes(x = x,y = y) #创建“画布”#下面是添加点,这里是添加几何对象点,color就是图形属性,+号就是添加一个图层p <- p + geom_point(color = "darkred")#在添加一个图层,添加注释p <- p + annotate("text",x =13 , y = 20,parse = T,label = "x[1] == x[2]")#展示图形print(p)

转载于:https://www.cnblogs.com/batteryhp/p/5232353.html

你可能感兴趣的文章
看博客学学Android(二十一)
查看>>
Python关于File学习过程
查看>>
java基础 - 综合训练
查看>>
[20171106]配置客户端连接注意.txt
查看>>
[20170612]FOR ALL COLUMNS SIZE repeat(11g).txt
查看>>
【转载】规则化和模型选择(Regularization and model selection)
查看>>
跨域请求
查看>>
java基础学习之对象转型
查看>>
通过判断流的头 判断文件类型
查看>>
m个苹果放入n个盘子问题
查看>>
HDU - 3564 Another LIS(LIS+线段树)
查看>>
mongodb高级聚合查询
查看>>
分析网站的用户行为
查看>>
Java中的继承:父类和子类的关系
查看>>
git 入门操作指令
查看>>
enter 默认搜索
查看>>
Servlet学习笔记
查看>>
问卷调查
查看>>
String StringBuffer StringBuilder的异同
查看>>
BZOJ 1208: [HNOI2004]宠物收养所
查看>>