ggplot学习笔记(二)

今天继续学习上一期的散点图如何继续优化。

在ggplot()函数的mapping参数的aes()设定中将变量映射到x、y轴, 颜色、符号、线型等图形元素类型, 也可以作为图形设置将某些图形元素设置为固定值。例如, 用不同颜色表示不同大洲, 就是将continent变量映射到color:

p<-ggplot(data=gapminder,mapping=aes(x=gdpPercap,y=lifeExp,color=continent))

程序中仅指定了将大洲映射到颜色维, 并不具体指定所用的颜色。作带有局部多项式曲线拟合的散点图:

p+ geom_point() +geom_smooth(method="loess") +  scale_x_log10(labels=scales::dollar)

## `geom_smooth()` using formula 'y ~ x'

可以看出, 不同散点用了不同颜色表示其continent变量的值, 五个大洲分别进行了曲线拟合, 曲线使用了不同颜色但置信域颜色相同, 使得难以认读。 在图形右侧自动生成了颜色与continent变量值的对应关系图例。下面的图形仍分不同大洲作曲线拟合, 并将置信区间阴影的颜色也用不同大洲区分, 方法是在aes()中将color和fill都指定为变量continent:

p<-ggplot(data=gapminder,mapping=aes(x=gdpPercap,y=lifeExp,color=continent,fill=continent))p+geom_point() +geom_smooth(method="loess") +scale_x_log10(labels=scales::dollar)

## `geom_smooth()` using formula 'y ~ x'

尝试将颜色指定为一个固定值,如:

p<-ggplot(data=gapminder,mapping=aes(x=gdpPercap,y=lifeExp,color="chartreuse4"))p+geom_point() +geom_smooth(method="loess") +scale_x_log10(labels=scales::dollar)

## `geom_smooth()` using formula 'y ~ x'

我们发现, 散点并没有使用草绿色, 而且图形右侧有一个chartreuse4图例。 这是因为, aes()仅用来指定变量与图形元素类型的映射, 所以实际上是生成了一个仅有一个常数值"chartreuse4"的新变量, 用颜色表示这个新变量。 为了指定固定颜色, 应将color=作为geom_xxx()函数的选项, 而不是放在aes()映射中, 如:

p<-ggplot(data=gapminder,mapping=aes(x=gdpPercap,y=lifeExp))p+geom_point(color="chartreuse4") +geom_smooth(method="loess") +scale_x_log10(labels=scales::dollar)

## `geom_smooth()` using formula 'y ~ x'

geom_xxx()函数接受许多关于颜色、透明度、符号、线型的设置参数。 比如, 下面的程序指定了散点的透明度, 以及拟合直线的粗细:

p + geom_point(alpha=0.5) +geom_smooth(method="lm", color="cadetblue1", se =FALSE, size =4, alpha =0.3) +  scale_x_log10(labels=scales::dollar)

## `geom_smooth()` using formula 'y ~ x'

程序中size指定了线的以毫米为单位的粗细, se = FALSE关闭了置信区间显示。 用alpha =设置了透明度, 取0和1之间的值, 数值越小越透明。 在有许多个点时适当设置透明度可以比较好地显示出重叠的点, 重叠点越多点的颜色越深。 虽然这里设置了固定的透明度, 也可以在aes()中将透明度alpha映射到某个变量, 使得该变量值大小用点的透明度表示。画线时可以用linetype参数指定线型, 0表示实线, 1到6分别表示不同的虚线线型。下面用labs()函数给图形加上适当的标题:

p<-ggplot(data=gapminder,mapping=aes(x=gdpPercap,y=lifeExp))p+geom_point(alpha=0.3)+geom_smooth(method="gam") +scale_x_log10(labels=scales::dollar)+labs(x="人均GDP",y="期望寿命(年数)",title="经济增长与期望寿命",subtitle="数据点为每个国家每年",caption="数据来源: gapminder")

## `geom_smooth()` using formula 'y ~ s(x, bs = "cs")'

可以看出, labs()规定了上方的标题、小标题, x轴、y轴的标题, 右下方的标注(caption)。 坐标轴刻度数值的规定则需要在scale_xxx()函数中给出。

你可能感兴趣的:(ggplot学习笔记(二))