文章目录
- 基本流程
- 渲染美化
- 坐标轴设置
R语言系列:
- 编程基础💎循环语句💎向量、矩阵和数组💎列表、数据帧
- 排序函数💎apply系列函数
- tidyverse:readr💎tibble
基本流程
ggplot2有其独特的绘图语法,想要实现数据绘图,除了数据和集合形状之外,还需要一个叫做aesthetic
的东西,这个不知道应该怎么翻,后面就统一叫做美术风格了。
而实际在绘图过程中,ggplot2
则分为两步,分别是构造数据,然后对数据进行绘图,并输出到屏幕,下面先来第一步
data <- tibble(time=c(time(nhtemp)), nhtemp=c(nhtemp))
g <- ggplot(data, aes(x=time, y=nhtemp))
其中, nhtemp
是R自带的一个平均温度数据集,原本的格式是时间序列。第一步,将其转换为tibble
,然后调用ggplot
创建图像,接下来要做的,就是将不同的美术风格添加到这个图像上。
g + geom_point()
效果如下,很明显这是个散点图。
如果想看一下其变化过程,那么把点连成线显然是更直观
g + geom_point() + geom_line()
效果如下
渲染美化
散点图和折线图的基本元素无非是点还有线,而点和线可供操作的属性无非是颜色、形状、半径粗细等,这些属性可分别通过color
, shape
/linetype
, size
来声明,下面对点线图稍作更改
g + geom_point(color='blue', shape="star", size=1) +
geom_line(color='green', linetype='dotted', size=0.5)
效果如下
color
不必多言,基本上我们能想到的颜色都可以使用。
linetype
则可选择"blank", "solid", "dashed", "dotted", "dotdash", "longdash", "twodash"
等,我们选用了dotted
,就是点线图。
shape
表示点的形状,既可以通过字符串声明,也可以直接用数字代号,下面将这些图画出来看看
d=data.frame(p=c(0:25,32:127))
ggplot() + scale_shape_identity() +
scale_y_continuous(name="") + scale_x_continuous(name="") +
geom_point(data=d, mapping=aes(x=p%%16, y=p%/%16, shape=p), size=5, fill="red") +
geom_text(data=d, mapping=aes(x=p%%16, y=p%/%16+0.25, label=p))
在上面这个绘图代码中,scale_x_continuous, scale_y_continuous
分别用于改变x,y
轴的坐标范围。在geom_point
中,选择了fill="red"
,表示填充色为红色, 但只有21-25
变红了,说明只有这几个形状支持填充。mapping=aes
用于映射绘图位置,这些东西对于初学者来说稍显复杂,不必多虑,绘制这个图的主要目的是看看点的形状。
坐标轴设置
大体上讲,作图必备的要素,除了图像本身之外,最重要的就是坐标轴的刻度和说明,在ggplot
中,通过xlab
和ylab
可以设置坐标轴的标签;通过xlim, ylim
可以设置坐标轴的范围;通过theme
可以更改坐标文字的风格。
最后,通过ggtitle
可以为图像添加一个题图。
示例如下
g + geom_point(color="red") + ggtitle("nhtemp") +
xlab("year") + ylab("Temperature") +
xlim(c(1910,1970)) + ylim(c(47,55))
效果如下