|
@@ -8,10 +8,44 @@ ggplot2是目前流行的R绘图包,作者是Hadley Wickham, R领域的牛
|
|
|
|
|
|
ggplot2中图形的组成部分有:
|
|
ggplot2中图形的组成部分有:
|
|
* data: 数据,数据是图形的基础,是描述事物的基本变异。数据的结构决定图形的选择。
|
|
* data: 数据,数据是图形的基础,是描述事物的基本变异。数据的结构决定图形的选择。
|
|
-* geoms: 几何图形
|
|
|
|
-* mappings: 数据到几何图形的映射
|
|
|
|
-* stats:统计转换(statistical transform, 缩写为stats)
|
|
|
|
-* scales: 标尺。标尺把数据空间的值映射到图形的视觉属性,可以是颜色(color)、形状(shape)或大小(size)。scales绘制图例(legend)或者坐标轴(axis)。标尺是度量的基准。
|
|
|
|
|
|
+* geoms: 几何图形,表示几何图形的类型
|
|
|
|
+ point: 点,默认类型
|
|
|
|
+ smooth: 平滑曲线及其误差范围,默认使用lowess平滑
|
|
|
|
+ boxplot: 箱线图
|
|
|
|
+ histogram: 直方图,适用于一维数据
|
|
|
|
+ freqpoly: 频率多边形
|
|
|
|
+ density: 密度分布
|
|
|
|
+ bar: 柱形图
|
|
|
|
+* mappings: 数据到几何图形的映射,图形属性通过aes()函数指定,视觉属性有x,y,alpha,color,fill,linetype,shape,size。
|
|
|
|
+ x,y: x轴、y轴与数据的映射关系
|
|
|
|
+ alpha: 数据映射为图形元素的透明度
|
|
|
|
+ color: 数据映射为图形元素的颜色
|
|
|
|
+ fill: 数据映射为图形元素的填充颜色
|
|
|
|
+ linetype: 数据映射为图形元素的线型
|
|
|
|
+ shape: 数据元素映射为图形元素的形状
|
|
|
|
+ size: 数据元素映射为图形元素的大小
|
|
|
|
+* scales: 标尺。标尺控制数据向视觉属性的映射逻辑,包括尺度变换和连续性。把数据空间的值映射到图形的视觉属性,可以是颜色(color)、形状(shape)或大小(size)。scales绘制图例(legend)或者坐标轴(axis)。标尺是度量的基准,处理数据度量尺度的变换,同时处理数据的连续性和离散性与视觉属性之间的关系。视觉属性有四种标尺:
|
|
|
|
+ scale_*_continuous():数据的连续取值映射为视觉属性的取值
|
|
|
|
+ scale_*_discrete():数据的离散取值映射为视觉属性取值
|
|
|
|
+ scale_*_identity():使用数据值作为视觉属性取值
|
|
|
|
+ scale_*_mannual():手工指定离散的数据值与图形属性之间的关系
|
|
|
|
+ 其中的\*替换成x,y,color等视觉属性。如scale_color_continuous()表示连续取值的颜色标尺
|
|
|
|
+
|
|
|
|
+对于x和y类图形属性,有如下几种特殊的标尺:
|
|
|
|
+ scale_x_date(labels=date_format("%m/%d"), breaks=date_breaks("2 weeks"))
|
|
|
|
+ scale_x_datetime()
|
|
|
|
+ scale_x_log10()
|
|
|
|
+ scale_x_reverse()
|
|
|
|
+ scale_x_sqrt()
|
|
|
|
+
|
|
|
|
+对于color和fill类的图形属性,有如下几类特殊标尺:
|
|
|
|
+ scale_fill_brewer(palette="Blues"):根据调色盘生成颜色标尺,可用的调色盘可以通过RColorBrewer::display.brewer.all()命令查看;对于具体的一个调色盘,可以通过RColorBrewer::brewer.pal(n=4, name="Blues")查看具体某个名字调色盘的n个配色值。
|
|
|
|
+ scale_fill_grey(start=0.2, end=0.8, na.value="red"):灰度标尺
|
|
|
|
+ scale_fill_gradient(low="red", high="yellow"):双色渐变标尺
|
|
|
|
+ scale_fill_gradient2(low="red", high="blue", mid="white", midpoint=25):三色渐变标尺
|
|
|
|
+ scale_fill_gradientn(colours=terrain.colors(6)):n色渐标尺,其他的调色盘有rainbow(),heat.colors(),topo.colors(),cm.colors()以及RColorBrewer包的调色盘。
|
|
|
|
+
|
|
|
|
+
|
|
* coord: 坐标系(coordinate system,缩写为coord),坐标系决定数据向图形表面的映射方式和具体程度。
|
|
* coord: 坐标系(coordinate system,缩写为coord),坐标系决定数据向图形表面的映射方式和具体程度。
|
|
* facet: 查英汉词典,facet是小平面,方面的意思。在ggplot中一般翻译成“分面”,说实在并不太好,可也找不到更好的词儿来代替。用的人多了,也就习惯了。
|
|
* facet: 查英汉词典,facet是小平面,方面的意思。在ggplot中一般翻译成“分面”,说实在并不太好,可也找不到更好的词儿来代替。用的人多了,也就习惯了。
|
|
|
|
|
|
@@ -61,6 +95,38 @@ p
|
|
以上语句前可以简写成:
|
|
以上语句前可以简写成:
|
|
geom_histogram(binwidth=2, fill="steelblue")
|
|
geom_histogram(binwidth=2, fill="steelblue")
|
|
|
|
|
|
|
|
+#### 主题
|
|
|
|
+
|
|
|
|
+主题控制图表的整体外观,由一系列视觉特性的设定组成。主题的目的是为了实现整个图形个元素的协调、统一,给人一种视觉上的和谐美感,或者适应某种特殊的需求,如期刊文章对图表的特殊要求,报告展示时与报告内容与风格的一致。ggplot2内置了一些常用主题:
|
|
|
|
+* 黑白:theme_bw(),
|
|
|
|
+* 经典:theme_classic()
|
|
|
|
+* 灰色:theme_grey()
|
|
|
|
+* 简单:theme_minimal()
|
|
|
|
+ggthemes包,包含一些其他主题,根据需要选用。
|
|
|
|
+主题应用方法:
|
|
|
|
+* 自定义主题。
|
|
|
|
+
|
|
|
|
+#### 图例
|
|
|
|
+
|
|
|
|
+图例位置:theme(legend.position="bottom"),其他选项有top、left和right。
|
|
|
|
+
|
|
|
|
+图例类型:
|
|
|
|
+颜色条(colorbar),适合连续变量;
|
|
|
|
+legend为键值对,适合离散变量;
|
|
|
|
+none,图形属性为none,该属性不显示图例。
|
|
|
|
+
|
|
|
|
+#### 标签(label)
|
|
|
|
+
|
|
|
|
+标签提供对图形元素的描述性信息,如图表的标题、副标题,坐标轴标签,图形的注释等。
|
|
|
|
+* 图表标题(ggtitle)
|
|
|
|
+ ggtitle("title of the graph"):指定图形名称
|
|
|
|
+* x轴标签
|
|
|
|
+ xlab("label of x")
|
|
|
|
+* y轴标签
|
|
|
|
+ ylab("label of y"):指定y轴标签
|
|
|
|
+* 图例标签
|
|
|
|
+ 需要使用scale_*()的name和labels选项指定
|
|
|
|
+
|
|
|
|
|
|
#### ggplot语法
|
|
#### ggplot语法
|
|
|
|
|