如何使用 ggplot2 图例

推荐这篇日记的豆列
······用R的基础作图系统和ggplot2做常用图 - 推酷
用R的基础作图系统和ggplot2做常用图
复习基础作图命令
学习基本的ggplot作图命令
这里我们会用R语言中的基础作图系统和ggplot2中的qplot以及ggplot作常见的图。
下面是几种常见的图:
直方图,和密度图
扇形图 常见的图形的代码都在下面的网站里。&
plot: 是R基础作图的命令
qplot:quick plot,是ggplot2中的简易作图系统。
ggplot:是ggplot2的作图命令
ggplot2的安装,和载入
library(ggplot2)
head(mtcars)
mpg cyl disp
qsec vs am gear carb
## Mazda RX4
160 110 3.90 2.620 16.46
## Mazda RX4 Wag
160 110 3.90 2.875 17.02
## Datsun 710
93 3.85 2.320 18.61
## Hornet 4 Drive
258 110 3.08 3.215 19.44
## Hornet Sportabout 18.7
360 175 3.15 3.440 17.02
## Valiant
225 105 2.76 3.460 20.22
plot(mtcars$wt, mtcars$mpg, col = &red&)
plot后面必须要有横坐标的数据和纵坐标的数据, col控制的是颜色 如果我们要指定图形的其他属性,那么要添加其他的参数
plot(mtcars$wt, mtcars$mpg, col = &red&, cex = 2, pch = 25)
pch控制点的符号,cex控制符号的大小,具体请看帮助文档。
qplot与plot非常相似 这里用colour控制颜色,意思更明显
qplot(mtcars$wt, mtcars$mpg, colour = &red&, size = 2)
geom:geometric object几何对象 也就是我们可以控制geom来绘制不同的图形 比如我们现在的散点图,我们把geom的参数设置为point,也就是散点图的意思
qplot(mtcars$wt, mtcars$mpg, geom = &point&, colour = &red&, size = 2)
另外一种方式,通过data来控制数据集,和上面是一样的效果。
qplot(wt, mpg, data = mtcars, geom = &point&, colour = &red&, size = 2)
我们再来用ggplot画散点图。这里形式就稍微不同。 用ggplot命令来画图,可以分成两部分:
第一:数据集,ggplot(mtcars,aes(x=wt,y=mpg)),通过这一句设置画图需要用的数据。
第二:图的类型,这里用geom_point,geom_line等。
ggplot(mtcars, aes(x = wt, y = mpg)) + geom_point(colour = &red&, size = 3)
线条的添加其实在plot上用type=“l”,也就是line的意思
x = c(1, 3, 4, 9, 11, 17, 3, 4)
y = c(2, 5, 9, 12, 15, 19, 6, 8)
data1 = data.frame(x, y)
plot(x, y, type = &l&)
points(x, y)
y1 = y * 0.9
lines(x, y1, col = &red&)
points(x, y1)
lines(spline(x, y, n = 20), col = 454, lwd = 2)
lines(spline(x, y, n = 201), col = 454, lwd = 2)
lines(spline(x, y1, n = 201), col = 454, lwd = 2)
geom可以通过不同的设置来添加不同的曲线。 并且可以给geom赋多个值。如下:
qplot(data1$x, data1$y, geom = &line&)
qplot(x, y, data = data1, geom = c(&line&, &point&), colour = &red&)
qplot(x, y, data = data1, geom = c(&line&, &point&, &smooth&))
## geom_smooth: method=&auto& and size of largest group is &1000, so using loess. Use 'method = x' to change the smoothing method.
ggplot(data1, aes(x = x, y = y)) + geom_line()
ggplot(data1, aes(x = x, y = y)) + geom_line() + geom_point() + geom_smooth()
## geom_smooth: method=&auto& and size of largest group is &1000, so using loess. Use 'method = x' to change the smoothing method.
data2 = table(mtcars$cyl)
barplot(table(mtcars$cyl))
Time demand
barplot(BOD$demand, names.arg = BOD$Time)
qplot(mtcars$cyl)
## stat_bin: binwidth defaulted to range/30. Use 'binwidth = x' to adjust this.
qplot(factor(mtcars$cyl))
qplot(BOD$Time, BOD$demand, geom = &bar&, stat = &identity&)
qplot(factor(BOD$Time), BOD$demand, geom = &bar&, stat = &identity&)
ggplot(BOD, aes(x = Time, y = demand)) + geom_bar(stat = &identity&)
ggplot(BOD, aes(x = factor(Time), y = demand)) + geom_bar(stat = &identity&)
直方图-核密度图
直方图涉及到一个分组的数量,不如,你把所有的数据分成两组, 就只有2个,分成10个,就有10个,分的越多,越精细。
hist(mtcars$mpg, breaks = 3)
hist(mtcars$mpg, breaks = 10)
lines(density(mtcars$mpg), col = &blue&)
hist(mtcars$mpg, breaks = 10, freq = FALSE)
lines(density(mtcars$mpg), col = &blue&)
这里和hist有所不同,hist是确定分割的份数,而,qplot确定的是分割的宽度,也就是一份的宽度是多少。 同样道理,宽度越窄,也是越精细的。
qplot(mpg, data = mtcars, geom = &histogram&, binwidth = 2)
qplot(mpg, data = mtcars, geom = &histogram&, binwidth = 1)
qplot(mpg, data = mtcars, geom = &density&)
ggplot的一大特点是图层
first = ggplot(mtcars, aes(x = mpg))
first + geom_histogram(binwidth = 2, fill = &red&, colour = &black&)
first + geom_density(fill = &red&, colour = &black&)
first = ggplot(mtcars, aes(x = mpg, y = ..density..))
first + geom_histogram(binwidth = 2) + geom_density()
boxplot(mtcars$mpg)
boxplot(mpg ~ cyl, data = mtcars)
qplot(x = cyl, y = mpg, data = mtcars, geom = &boxplot&)
qplot(x = factor(cyl), y = mpg, data = mtcars, geom = &boxplot&)
ggplot(mtcars, aes(x = cyl, y = mpg)) + geom_boxplot()
ggplot(mtcars, aes(x = factor(cyl), y = mpg)) + geom_boxplot()
已发表评论数()
&&登&&&录&&
已收藏到推刊!
请填写推刊名
描述不能大于100个字符!
权限设置: 公开
仅自己可见用于绘图的R语言扩展包:ggplot2
-------------
新增文件夹...
新增文件夹
(多个标签用逗号分隔)
1 什么是ggplot2
ggplot2是用于绘图的R语言扩展包,其理念根植于《Grammar of Graphics》一书。它将绘图视为一种映射,即从数学空间映射到图形元素空间。例如将不同的数值映射到不同的色彩或透明度。该绘图包的特点在于并不去定义具体的图形(如直方图,散点图),而是定义各种底层组件(如线条、方块)来合成复杂的图形,这使它能以非常简洁的函数构建各类图形,而且默认条件下的绘图品质就能达到出版要求。
2 与lattice包的比较
ggplot2和lattice都属于高级的格点绘图包,初学R语言的朋友可能会在二者选择上有所疑惑。从各自特点上来看,lattice入门较容易,作图速度较快,图形函数种类较多,比如它可以进行三维绘图,而ggplot2就不能。ggplot2需要一段时间的学习,但当你跨过这个门槛之后,就能体会到它的简洁和优雅,而且ggplot2可以通过底层组件构造前所未有的图形,你所受到的限制只是你的想象力。
建议两种绘图包都可以研究一下。如果时间紧张,需要在一两天之内为论文做一张图,那么推荐用lattice,如果时间充裕,推荐学习ggplot2。
3 基本概念
图层(Layer):如果你用过photoshop,那么对于图层一定不会陌生。一个图层好比是一张玻璃纸,包含有各种图形元素,你可以分别建立图层然后叠放在一起,组合成图形的最终效果。图层可以允许用户一步步的构建图形,方便单独对图层进行修改、增加统计量、甚至改动数据。
标度(Scale):标度是一种函数,它控制了数学空间到图形元素空间的映射。一组连续数据可以映射到X轴坐标,也可以映射到一组连续的渐变色彩。一组分类数据可以映射成为不同的形状,也可以映射成为不同的大小。
坐标系统(Coordinate):坐标系统控制了图形的坐标轴并影响所有图形元素,最常用的是直角坐标轴,坐标轴可以进行变换以满足不同的需要,如对数坐标。其它可选的还有极坐标轴。
位面(Facet):很多时候需要将数据按某种方法分组,分别进行绘图。位面就是控制分组绘图的方法和排列形式。
4 一个例子
下面用ggplot2包内带的汽车测试数据(mpg)来举个例子,用到的三个变量分别是发动机容量(displ)、高速公路上的每加仑行驶里数(hwy)、汽缸数目(cyl)。首先加载ggplot2包,然后用ggplot定义第一层即数据来源。其中aes参数非常关键,它将displ映射到X轴,将hwy映射到Y轴,将cyl变为分类数据后映射为不同的颜色。然后使用+号添加了两个新的图层,第二层是加上了散点,第三层是加上了loess平滑曲线。
library(ggplot2)
p &- ggplot(data=mpg,aes(x=displ,y=hwy,colour=factor(cyl)))
p + geom_point() + geom_smooth()
上图是对几种不同汽缸的数据分别平滑,如果需要对整体数据进行平滑,可将colour参数设置在散点图层内而非第一层,这样第三层的平滑图形就不会受到colour参数的影响。
p &- ggplot(mpg,aes(x=displ,y=hwy))
p + geom_point(aes(colour=factor(cyl))) + geom_smooth()
II. 图层控制与直方图
ggplot2使用图层将各种图形元素逐步添加组合,从而形成最终结果。第一层必须是原始数据层,其中data参数控制数据来源,注意数据形式只能是数据框格式。aes参数控制了对哪些变量进行图形映射,以及映射方式,aes是Aesthetic的缩写。
下面我们来绘制一个直方图作为示例。数据集仍采取mpg,对hwy变量绘制直方图。首先加载了扩展包,然后用ggplot函数建立了第一层,hwy数据映射到X轴上;使用+号增加了第二层,即直方图对象层。此时p被视为一种层对象,使用summary函数可得到关于它的更多信息,print(p)命令即可进行绘图。
library( ggplot2) p &- ggplot(data = mpg,aes(x = hwy))
p &- p + geom_histogram()
summary(p)
data: manufacturer, model, displ, year, cyl, trans,
drv, cty, hwy, fl, class [234x11]
faceting: facet_grid(. ~ ., FALSE)
-----------------------------------
geom_histogram:
position_stack: (width = NULL, height = NULL)
上面的信息告诉我们,p对象含有两层,第一层数据层描述了变量和映射方式,第二层是直方图对象(geom_histogram),geom表示几何对象,它是ggplot中重要的图层控制对象,因为它负责图形渲染的类型。geom_histogram是图形渲染类型的一种,其它类型可参见官网。
每个geom对象都需要有数据输入,数据可以从第一层中自动读取,也可以在aes参数中直接设置。而且每个geom还默认搭配某种统计变换(stat),geom_histogram的默认统计变换是stat_bin。它负责对数据进行分组计数。
下面我们尝试两种更为复杂的直方图,首先将数据按照year这个变量划分为两组,用不同的颜色绘制直方图,而且用频率而非计数来刻画Y轴,并添加密度曲线。
p &- ggplot(mpg,aes(hwy))
p + geom_histogram(position = 'identity',
alpha=0.5,
aes(y = ..density..,
fill = factor(year))) +
stat_density(geom = 'line',
position = 'identity',
aes(colour = factor(year)))
如果想将两个直方图分开绘制,也可以使用facet_grid参数,结果如下图所示。 III. 位置调整与条形图
位置调整(Position adjustments)是针对同一图层内元素的位置进行微调的方法。它包括五种设置,分别是stack、dodge、fill、identity、jitter。
我们用条形图来展示其用法,仍使用mpg数据集,其中用到的变量是class,即生产汽车的类型,以及year生产年份。下面的条形图是将各类型的汽车数量进行汇集,并以年份作为分组变量。我们首先载入扩展包,然后用频数表对数据进行大致的了解,最后绘制了四种条形图。
library(ggplot2)
with(mpg,table(class,year))
p &- ggplot(data=mpg,aes(x=class,fill=factor(year)))
p + geom_bar(position='dodge')
p + geom_bar(position='stack')
p + geom_bar(position='fill')
p + geom_bar(position='identity',alpha=0.3)
可以看到dodge方式是将不同年份的数据并列放置;stack方式是将不同年份数据推叠放置,这也是geom_bar的默认处理方式;fill方式和stack类似,但Y轴不再是计数,而是以百分比显示;identity方式是不做任何改变直接显示出来,所以需要设置透明度才能看得清楚。
geom_bar是绘制条状几何对象,所以也可以用不经汇集的原始数据进行绘图。下面我们用年间的美国GDP增长率举个例子。
y=c(1.1,1.8,2.5,3.6,3.1,2.7,1.9,-0.1,-3.5,3.0)
data=data.frame(x,y)
p=ggplot(data,aes(x,y,fill=y))
p+geom_bar(stat="identity")+
geom_abline(intercept = 0, slope = 0,size=1,colour='gray')+
geom_text(aes(label=y),hjust=0.5, vjust=-0.5 )+
scale_y_continuous(limits=c(-3.8,4.2))+
labs(x='年份', y='GDP增长率%')+
opts(title = "美国GDP增长率")
IV. 散点图
1 色彩和形状的控制
数据特征不仅可以用坐标来表示,也可以用不同的色彩或形状来表示。仍以mpg数据集为例,所用到的变量有cty(城市中行驶距离),hwy(高速路行驶距离),displ(排量大小),year(生产年份)
library(ggplot2)
p &- ggplot(mpg, aes(cty, hwy))
p1 &- p + geom_point(aes(colour = factor(year),shape = factor(year), size = displ), alpha = 0.6, position = 'jitter')
我们将1999年生产车型用红色圆形表示,2008年用兰色三角形表示,排量用图形的大小表示,并且设置了透明度和jitter以避免样本点之间的重叠。可观察到2008年生产的大排量车型较多,从而油耗较高,单位油耗行驶距离较短。
2 坐标的控制
上图右上角数据点较为稀疏,这种情况下可用对数变换。为了演示ggplot2对图形坐标的控制,我们对X轴和Y轴均进行对数变换,然后对X轴的坐标显示加以限制,只显示X轴数据的均值,以及一倍标准差的坐标。
cty.mean=with(mpg,mean(cty))
cty.sd=with(mpg,sd(cty))
p1 + scale_x_continuous(trans='log',breaks=c(cty.mean-cty.sd,cty.mean,cty.mean+cty.sd), labels=c("high", "mean", "low")) + scale_y_continuous(trans='log') 3 文字说明
利用geom_text函数可添加文字说明以增强图形的可读性
p &- ggplot(mtcars, aes(x=wt, y=mpg,colour=factor(cyl),label=rownames(mtcars)))
p + geom_text(hjust=0,vjust=-1,alpha=0.8)+ geom_point(size=3,aes(shape=factor(cyl)))
4 矩阵散点图
ggplot2包中也提供了矩阵散点图函数
plotmatrix(USArrests)+geom_smooth()
V. 时间序列
ggplot2包也能对时间序列数据绘图,但在处理上需要有些注意的地方。下面我们以上证指数为例进行作图,首先利用quantmod包从yahoo数据源获取从1997年以来的数据,存于变量SSEC中,抽取收盘数字,然后分别提取时间数据和指数数值,绘图结果如下图。
library(quantmod)
library(ggplot2)
getSymbols('^SSEC',src='yahoo',from = '')
close &- (Cl(SSEC))
time &- index(close)
value &- as.vector(close)
p &- ggplot(data.frame(time,value),aes(time,value))
p + geom_line()
我们希望能够在图中加入一些其它的说明元素,以丰富视图中所包含的信息。这些信息包括用不同的颜色区块来表示“江核心”和“胡核心”的执政时期,以及对中国证券市场的若干大事件进行标注。最后的代码和结果如下。
yrng &- range(value)
xrng &- range(time)
data &- data.frame(start=as.Date(c('','')),end=as.Date(c('','')),core=c('jiang','hu'))
timepoint &- as.Date(c('','','','',''))
events &- c('证券法实施','国有股减持','股权分置改革','次贷危机爆发','融资融券试点')
data2 &- data.frame(timepoint,events,stock=value[time %in% timepoint])
p + geom_line()
+ geom_rect(aes(NULL,NULL,xmin = start, xmax = end, fill = core),ymin = yrng[1],ymax=yrng[2],data = data)
+ scale_fill_manual(values = alpha(c('blue','red'),0.2))
+ geom_text(aes(timepoint, stock, label = events),data = data2,vjust = -2,size = 5)
+ geom_point(aes(timepoint, stock),data = data2,size = 5,colour = alpha('red',0.5))
项目主页:
相关资讯  — 
相关文档  — 
发布时间: 17:23:25
同类热门经验
35871次浏览
12657次浏览
12959次浏览
18761次浏览
14728次浏览
11158次浏览
OPEN-OPEN, all rights reserved.ggplot2作图详解7(完):主题(theme)设置
凡是和数据无关的图形设置内容理论上都可以归为主题类,但考虑到一些内容(如坐标轴)的特殊性,可以允许例外的情况。主题的设置相当繁琐,很容易就占用了
大量的作图时间,应尽量把这些东西简化,把注意力主要放在数据分析上。基于这种考虑,ggplot2主题设置的内容虽然相当多,本文仅在总体上作一简单介
1 theme函数及其参数
让使用者在数据分析阶段能专注于数据而不是图形细节,这是数据可视化分析工具是否合格的标准之一。某些作图软件(或自以为有作图能力的软件)给出的初始图
形简直惨不忍睹,不花时间修改字体、边距、底纹这些东西就恶心得没法继续分析数据。ggplot2做得还可以:即使不做任何设置,多数情况下作出的图形都
还不错,不丑陋也不妖艳,不会分散用户的注意力。这得益于ggplot2的几个预设主题。
ggplot2的四个预设主题我们在前面已经预览过了,下面我们看看主题都包含了哪些东西。这很容易,把ggplot2默认主题的设置函数theme_gray()的代码拿出来看看就知道了:
library(ggplot2)
theme_gray
# 函数名不加括号,获得函数的代码
## function (base_size = 12, base_family = "")
theme(line = element_line(colour = "black", size = 0.5, linetype = 1,
lineend = "butt"), rect = element_rect(fill = "white",
colour = "black", size = 0.5, linetype = 1), text = element_text(family = base_family,
face = "plain", colour = "black", size = base_size, hjust = 0.5,
vjust = 0.5, angle = 0, lineheight = 0.9), axis.text = element_text(size = rel(0.8),
colour = "grey50"), strip.text = element_text(size = rel(0.8)),
axis.line = element_blank(), axis.text.x = element_text(vjust = 1),
axis.text.y = element_text(hjust = 1), axis.ticks = element_line(colour = "grey50"),
axis.title.x = element_text(), axis.title.y = element_text(angle = 90),
axis.ticks.length = unit(0.15, "cm"), axis.ticks.margin = unit(0.1,
"cm"), legend.background = element_rect(colour = NA),
legend.margin = unit(0.2, "cm"), legend.key = element_rect(fill = "grey95",
colour = "white"), legend.key.size = unit(1.2, "lines"),
legend.key.height = NULL, legend.key.width = NULL, legend.text = element_text(size = rel(0.8)),
legend.text.align = NULL, legend.title = element_text(size = rel(0.8),
face = "bold", hjust = 0), legend.title.align = NULL,
legend.position = "right", legend.direction = NULL, legend.justification = "center",
legend.box = NULL, panel.background = element_rect(fill = "grey90",
colour = NA), panel.border = element_blank(), panel.grid.major = element_line(colour = "white"),
panel.grid.minor = element_line(colour = "grey95", size = 0.25),
panel.margin = unit(0.25, "lines"), strip.background = element_rect(fill = "grey80",
colour = NA), strip.text.x = element_text(), strip.text.y = element_text(angle = -90),
plot.background = element_rect(colour = "white"), plot.title = element_text(size = rel(1.2)),
plot.margin = unit(c(1, 1, 0.5, 0.5), "lines"), complete = TRUE)
看穿了吧,没神秘感了。它无非是一个具有两个参数的函数:base_size和base_family。其主题部分直接应用了另外一个函数:theme。它就是ggplot2的主题设置函数。这个theme函数的产生看起来非常简单:
# 函数说明,非运行代码
theme(..., complete = FALSE)
但dotdotdot(···)参数却内涵丰富,它可以设置很多内容。
所有线属性
所有矩形区域属性
所有文本相关属性
所有标题属性
axis.title
坐标轴标题
axis.title.x
axis.title
axis.title.y
axis.title
坐标轴刻度标签属性
axis.text.x
属性和继承和前面类似,不再重复
axis.text.y
axis.ticks
坐标轴刻度线
axis.ticks.x
axis.ticks.y
axis.ticks.length
刻度线长度
axis.ticks.margin
刻度线和刻度标签之间的间距
axis.line.x
axis.line.y
legend.background
legend.margin
legend.key
legend.key.size
图例符号大小
legend.key.height
图例符号高度
legend.key.width
图例符号宽度
legend.text
图例文字标签
legend.text.align
图例文字标签对齐方式
0为左齐,1为右齐
legend.title
legend.title.align
图例标题对齐方式
legend.position
left, right, bottom, top, 两数字向量
legend.direction
图例排列方向
"horizontal" or "vertical"
legend.justification
center或两数字向量
legend.box
多图例的排列方式
"horizontal" or "vertical"
legend.box.just
多图例居中方式
panel.background
绘图区背景
panel.border
绘图区边框
panel.margin
分面绘图区之间的边距
panel.grid
绘图区网格线
panel.grid.major
panel.grid.minor
panel.grid.major.x
panel.grid.major.y
panel.grid.minor.x
panel.grid.minor.y
plot.background
整个图形的背景
plot.title
plot.margin
top, right, bottom, left
strip.background
分面标签背景
strip.text
分面标签文本
strip.text.x
strip.text.y
除一些尺寸设置有关的内容外(需要用grid包的unit函数设置),几乎所有元素都在theme函数内使用
element_line,element_rect,element_text和element_blank函数设置,使用方法参考这几个函数的参数说
明即可,这里不再一一举例说明。
text, line,
rect和title是最顶层的元素,理论上可以做全局设定,但当前版本ggplot2还没有实现,可以根据情况做一些调整:
x &- LETTERS[1:10]
y &- abs(rnorm(10))
(p &- qplot(x = x, y = y, color = x, fill = x, geom = c("line", "point"), group = 1) +
labs(title = "The figure title.", xlab = "Factor", ylab = "Value") + theme(text = element_text(color = "red",
size = 16), line = element_line(color = "blue"), rect = element_rect(fill = "white")))
p + theme(panel.background = element_rect(fill = "transparent", color = "gray"),
legend.key = element_rect(fill = "transparent", color = "transparent"),
axis.text = element_text(color = "red"))
全局text和rect设置对部分元素有作用,line基本不起作用。
2 自定义主题
图形细节设置虽然繁琐,但是在R中可以相当简单。由于自己使用的或者杂志要求的图形外观一般都很固定,我们可以使用ggplot2的theme函数非常方便地定义自己的图形主题。下面是我自用的一个主题函数,主要作的改动是坐标轴刻度朝向和统一了图形各个区域的背景颜色:
##' A nice-looking ggplot2 theme: inward axis ticks, legend title excluded, and uniform background.
##' @title A nice-looking ggplot2 theme
##' @param ...
##' Parameters passed to theme_classic() function.
##' @param bg
##' Color string (default 'white') for user defined uniform background.
##' @return
##' ggplot2 theme object.
##' @examples
##' library(ggplot2)
##' qplot(x=carat, y=price, color=cut, data=diamonds) + theme_zg()
##' @author ZGUANG
##' @export
theme_zg &- function(..., bg='white'){
require(grid)
theme_classic(...) +
theme(rect=element_rect(fill=bg),
plot.margin=unit(rep(0.5,4), 'lines'),
panel.background=element_rect(fill='transparent', color='black'),
panel.border=element_rect(fill='transparent', color='transparent'),
panel.grid=element_blank(),
axis.title = element_text(color='black', vjust=0.1),
axis.ticks.length = unit(-0.4,"lines"),
axis.ticks = element_line(color='black'),
axis.ticks.margin = unit(0.8,"lines"),
legend.title=element_blank(),
legend.key=element_rect(fill='transparent', color='transparent'))
自定义的主题可以编入自己的R语言包中,方便调用。如果觉得你的主题很有代表性,可以发给ggplot2的作者H.W.,让他加到ggplot2的下一个发行版中。比如上面上面函数加入ggplot2后就可以直接调用:
p &- qplot(x = x, y = y, color = x, fill = x, geom = c("line", "point"), group = 1) +
labs(title = "The figure title.", xlab = "Factor", ylab = "Value")
p + theme_zg()
p + theme_zg(base_size = 16, bg = "gray90")
本系列博文到此结束。ggplot2还在完善过程中,一些新功能可能不断会实现,感谢H.W的努力。有一些本应属于主题类的东西不能在theme_set
函数中设置,需要使用特殊的函数,如坐标轴翻转、刻度设置等,在这不再介绍。如果想比较透彻的学习,建议把ggplot2项目从GitHub克隆下来研究
它的代码。更好的方法是研究ggmap和ggbio这两个包,它们的代码本身就是ggplot2应用的最好范例。尤其是ggmap,H.W.是它的作者之
本系列文章的例子基于ggplot2
0.9.3.1版本,如果发现一些代码运行不正确或效果图有变化,应该是版本不同造成。文章后都有sessionInfo信息可参考。
sessionInfo()
## R version 3.0.1 ()
## Platform: x86_64-pc-linux-gnu (64-bit)
## locale:
[1] LC_CTYPE=zh_CN.UTF-8
LC_NUMERIC=C
[3] LC_TIME=zh_CN.UTF-8
LC_COLLATE=zh_CN.UTF-8
[5] LC_MONETARY=zh_CN.UTF-8
LC_MESSAGES=zh_CN.UTF-8
[7] LC_PAPER=C
[9] LC_ADDRESS=C
LC_TELEPHONE=C
# [11] LC_MEASUREMENT=zh_CN.UTF-8 LC_IDENTIFICATION=C
## attached base packages:
## [1] grid
grDevices utils
## [8] methods
## other attached packages:
## [1] zblog_0.0.1
knitr_1.3.5
ggplot2_0.9.3.1
## loaded via a namespace (and not attached):
[1] colorspace_1.2-2
dichromat_2.0-0
digest_0.6.3
[4] evaluate_0.4.4
formatR_0.8
gtable_0.1.2
[7] highr_0.1.2
labeling_0.2
MASS_7.3-27
## [10] munsell_0.4.2
proto_0.3-10
## [13] RColorBrewer_1.0-5 reshape2_1.2.2
scales_0.2.3
## [16] stringr_0.6.2
tools_3.0.1
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。}

我要回帖

更多关于 ggplot2 图例 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信