R包——ggplot2(一)
关于ggplot2包(一)
关于ggplot2包(一)
ggplot2基本要素
- 数据(Data)和映射(Mapping)
- 几何对象(Geometric)
- 标尺(Scale)
- 统计变换(Statistics)
- 坐标系统(Coordinate)
- 图层(Layer)
- 分面(Facet)
- 主题(Theme)
数据(Data)和映射(Mapping)
下面用diamonds的数据为例,由于数据很大,随机选取一个子集进行画图
> library(ggplot2)
> data(diamonds)
> set.seed(42)#设定生成随机数的种子,使结果具有重复性
> small<-diamonds[sample(nrow(diamonds),1000),]#抽样
> head(small)
carat cut color clarity depth table price x y z
49345 0.71 Very Good H SI1 62.5 60 2096 5.68 5.75 3.57
50545 0.79 Premium H SI1 61.8 59 2275 5.97 5.91 3.67
15434 1.03 Ideal F SI1 62.4 57 6178 6.48 6.44 4.03
44792 0.50 Ideal E VS2 62.2 54 1624 5.08 5.11 3.17
34614 0.27 Ideal E VS1 61.6 56 470 4.14 4.17 2.56
27998 0.30 Premium E VS2 61.7 58 658 4.32 4.34 2.67
summary一下
> summary(small)
carat cut color clarity depth
Min. :0.2200 Fair : 28 D:121 SI1 :258 Min. :55.20
1st Qu.:0.4000 Good : 88 E:186 VS2 :231 1st Qu.:61.00
Median :0.7100 Very Good:227 F:164 SI2 :175 Median :61.80
Mean :0.8187 Premium :257 G:216 VS1 :141 Mean :61.71
3rd Qu.:1.0700 Ideal :400 H:154 VVS2 : 91 3rd Qu.:62.50
Max. :2.6600 I:106 VVS1 : 67 Max. :72.20
J: 53 (Other): 37
table price x y
Min. :50.10 Min. : 342.0 Min. :3.850 Min. :3.840
1st Qu.:56.00 1st Qu.: 989.5 1st Qu.:4.740 1st Qu.:4.758
Median :57.00 Median : 2595.0 Median :5.750 Median :5.775
Mean :57.43 Mean : 4110.5 Mean :5.787 Mean :5.791
3rd Qu.:59.00 3rd Qu.: 5495.2 3rd Qu.:6.600 3rd Qu.:6.610
Max. :65.00 Max. :18795.0 Max. :8.830 Max. :8.870
z
Min. :2.330
1st Qu.:2.920
Median :3.550
Mean :3.572
3rd Qu.:4.070
Max. :5.580
以克拉(carat)数为X轴变量,价格(price)为Y轴变量
> p<-ggplot(data=small,mapping=aes(x=carat,y=price))#将数据映射到XY坐标轴上
下面,画出散点图
> p+geom_point()
如果想把切工(cut)映射到形状属性:
> p<-ggplot(data=small,mapping=aes(x=carat,y=price,shape=cut))
> p+geom_point()
如果想再将颜色(color)映射颜色属性:
> p<-ggplot(data=small,mapping=aes(x=carat,y=price,shape=cut,colour=color))
> p+geom_point()
几何对象(Geometric)
在上面的例子,各种属性映射都由ggplot函数执行,只需要加一个图层,使用geom_point()告诉ggplot要画散点图,于是所有的属性都映射到散点上。
再如geom_histogram用于直方图,geom_bar用于画柱状图,geom_boxplot用于画箱式图等。
上图,也可以用下面代码,来画
> p<-ggplot(small)
> p+geom_point(aes(x=carat,y=price,shape=cut,colour=color))
直方图
>ggplot(small)+geom_histogram(aes(x=price))
同样可以根据另外的变量给它填充颜色
>ggplot(small)+geom_histogram(aes(x=price,fill=cut))
同样,可以将它们分开
>ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="dodge")
还可以按照相对比例来画,
>ggplot(small)+geom_histogram(aes(x=price, fill=cut), position="fill")
柱状图
> ggplot(small)+geom_bar(aes(x=clarity))
通过stat参数,可以让geom_bar按指定高度画图,
> ggplot()+geom_bar(aes(x=c(LETTERS[1:3]),y=1:3), stat="identity")
密度函数图
> ggplot(small)+geom_density(aes(x=price, colour=cut))
> ggplot(small)+geom_density(aes(x=price,fill=clarity))
colour参数指定的是颜色,fill是往曲线下面填充颜色
箱式图
> ggplot(small)+geom_boxplot(aes(x=cut, y=price,fill=color))
下面是各种geom_xxx函数
geom_abline geom_area
geom_bar geom_bin2d
geom_blank geom_boxplot
geom_contour geom_crossbar
geom_density geom_density2d
geom_dotplot geom_errorbar
geom_errorbarh geom_freqpoly
geom_hex geom_histogram
geom_hline geom_jitter
geom_line geom_linerange
geom_map geom_path
geom_point geom_pointrange
geom_polygon geom_quantile
geom_raster geom_rect
geom_ribbon geom_rug
geom_segment geom_smooth
geom_step geom_text
geom_tile geom_violin
geom_vline
R包——ggplot2(一)的更多相关文章
- R包——ggplot2(二)
关于ggplot包(二) 关于ggplot包(二) 标尺(Scale) 从前面可以看到,画图其实就是在做映射,不管是映射到不同的几何对象上,还是映射各种图形属性.在对图形属性进行映射之后,使用标尺可以 ...
- R语言 ggplot2包
R语言 ggplot2包的学习 分析数据要做的第一件事情,就是观察它.对于每个变量,哪些值是最常见的?值域是大是小?是否有异常观测? ggplot2图形之基本语法: ggplot2的核心理念是将 ...
- R 包
[下面列出每个步骤最有用的一些R包] .数据导入 以下R包主要用于数据导入和保存数据: feather:一种快速,轻量级的文件格式:在R和python上都可使用 readr:实现表格数据的快速导入 r ...
- 极简 R 包建立方法--转载
https://cosx.org/2013/11/building-r-packages-easily/ 最近想试一下捣腾一个 R 包出来,故参考了一些教程.现在看到的最好的就是谢益辉大大之前写过的开 ...
- Ubuntu安装R及R包
安装R $sudo apt-get update $sudo apt-get install r-base $sudo apt-get install r-base-dev 安装一些可能的依赖包 $s ...
- R语言ggplot2 简介
ggplot2是一个绘制可视化图形的R包,汲取了R语言基础绘图系统(graphics) 和l attice包的优点,摒弃了相关的缺点,创造出来的一套独立的绘图系统: ggplot2 有以下几个特点: ...
- R包开发过程记录
目的 走一遍R包开发过程,并发布到Github上使用. 步骤 1. 创建R包框架 Rsutdio --> File--> New Project--> New Directory - ...
- 普通用户安装 R 包
转自 http://bnuzhutao.cn/archives/901 一般 R 语言的书籍上,介绍安装 R 包的方法都是这样的: install.packages("packagename ...
- R包介绍
R语言的使用,很大程度上是借助各种各样的R包的辅助,从某种程度上讲,R包就是针对于R的插件,不同的插件满足不同的需求,截至2013年3月6日,CRAN已经收录了各类包4338个. 一. R语言包的安装 ...
随机推荐
- tomcat学习(-)windows 7 x64 配置tomcat服务
下载Tomcat 下载地址:http://tomcat.apache.org/ 安装版本:Tomcat 9.0 安装环境:windows 7 x64 阅读Tomcat文档 文档路径:http://lo ...
- Oracle初级入门 根据某字段重复只取一条记录,并计计算重复条数
在平常开发中,去重复数据经常使用到,本人新手,接触Oracle也不久,开发中用到的小知识点,记录一下,老鸟可绕道,如果有写错的,请指正. 去重复记录可以使用distinct,当只查询一列数据时,可以轻 ...
- .net通用权限框架B/S(二) 数据库设计
1.组织机构---员工是1:n关系 2.角色---员工n:n 3.角色--导航菜单n:n 4.操作权限(id)---导航菜单(prms_id)n:n [此处是n:n关系正常是生成第三张表存放多对多 ...
- iOS计算文本高度
NSDictionary *attribute = @{NSFontAttributeName: UIFont(14)}; CGRect labelRect = [string boundingRec ...
- VBA基础知识———常用语句
语句一:if判断语句 Sub 判断1() '单条件判断 If Range("a1").Value > 0 Then Range("b1") = " ...
- [树结构]平衡二叉树AVL
平衡二叉树是一种二叉排序树,其中每一个节点的左子树和右子树的高度至多等于1,平衡二叉树又称为AVL树. 将二叉树节点的左子树深度减去右子树深度的值称为平衡因子BF,平衡二叉树上所有节点的平衡因子只可能 ...
- sql防注入代码
function defend_sql($string, $force = 1) { $preg = "select|insert|and|or|update|delete|\'|\/\*| ...
- zabbix中文配置及乱码问题
1.切换成中文 2.发现有乱码出现 由于zabbix的web端没有中文字库,所以我们使用windows中的字体. 找到简体字的存储位置——copy到桌面或其他位置——上传到zabbix服务器——web ...
- php传参方式1--ajax
AJAX即“Asynchronous Javascript And XML”(异步JavaScript和XML),是指一种创建交互式网页应用的网页开发技术. AJAX = 异步 JavaScript和 ...
- GetMemory()函数
NO1 void GetMemory(char *p) { p=(char *)malloc(100); } void Test() { char * str=NULL; GetMemory(str) ...