R自带的作图工具有plot,但是在使用R作图时,不得不提到的一个强大的包ggplot2。ggplot2中qplot和ggplot函数也可以用来作图。下面会一一介绍在R中使用这些函数来制作散点图(scatter plot)、线图(line plot)、条形图(bar graph)、柱状图(histogram)、密度图(density)和箱线图(boxplot)。(上述图形时做数据分析时常用到的,相关概念百度或者wiki搜索都有。)

1. Scatter plot散点图(使用数据集:mtcars)

数据集中wt是车身重量,mpg是每英里使用多少加仑的汽油

plot(mtcars$wt,mtcars$mpg)

r语言中pt函数的输入 r语言中的plot函数_数据分析


plot的使用格式:plot(x, y, …),x参数指图中x坐标轴的坐标,y参数指图中y坐标轴的坐标,…指还有其他可用的参数。

qplot(wt,mpg,data=mtcars)

r语言中pt函数的输入 r语言中的plot函数_plot_02


qplot的使用格式:qplot(x, y = NULL, data,…),data参数指所用到的数据集。(这里也可以使用这种形式:qplot(mtcars$wt,mtcars$mpg)

ggplot(mtcars,aes(wt,mpg))+geom_point()

r语言中pt函数的输入 r语言中的plot函数_ggplot2_03


ggplot这个函数使用起来比较特别,可以看成这种格式:ggplot(所用到的资料)+geom_要绘制的图形类型()+…(可以加多个想要绘制的图形类型)。

ggplot()个人建议大家使用,另外两个能看的懂就好了。

2. Line plot线图(使用数据集:pressure)

pressure数据集就两列temperature和pressure。

plot(pressure$temperature,pressure$pressure,type='l')

r语言中pt函数的输入 r语言中的plot函数_plot_04


前面提到,…是还可以使用其他参数,这就就用了一个type参数来选择想要绘制的图形,没有选择type参数默认是点图。

type参数可选择的图形有:

符号

绘制的表格

p

点图

l

线图

b

点图与虚线图

c

虚线图

o

点图与实线图

h

直线条形图

s

阶梯图

还有两个

不写了,自己看帮助文档?plot

points(pressure$temperature,pressure$pressure)

r语言中pt函数的输入 r语言中的plot函数_图形_05


这个方法了解即可。

qplot(temperature,pressure,data = pressure,geom = 'line')

r语言中pt函数的输入 r语言中的plot函数_数据分析_06

qplot(temperature,pressure,data = pressure,geom = c('line','point'))

r语言中pt函数的输入 r语言中的plot函数_r语言中pt函数的输入_07


qplot函数做简单的图形比较方便。geom参数还可以引用列表。

ggplot(pressure,aes(temperature,pressure))+geom_line()+geom_point()

r语言中pt函数的输入 r语言中的plot函数_r语言中pt函数的输入_08


ggplot函数用起来会比qplot函数复杂点(qplot的q就是quick),但是它的代码看起来比较直观,容易理解。

3.Bar graph条形图(数据集:mtcars&BOD)

BOD数据集只有两列time和demand(需要的氧气量)
条形图是显示数据频数的图,所以我们要用数据框中的数据生成一个统计频数的表。

t<-table(mtcars$cyl)

cyl是车子汽缸数量得到表格如下:

汽缸数

车子数量

4

11

6

7

8

14

barplot(t)

r语言中pt函数的输入 r语言中的plot函数_ggplot2_09

ggplot(BOD,aes(Time,demand))+geom_bar(stat = 'identity')

r语言中pt函数的输入 r语言中的plot函数_数据分析_10


stat=’identity’y意为不对数据做统计运算,如果这里没有这步会报错。为什么会这样希望有人能点拨我一下~

这里新版本的R不能用gplot做条形图。

4.Histogram直方图(数据集:mtcars)

hist(mtcars$mpg)

r语言中pt函数的输入 r语言中的plot函数_数据分析_11

qplot(mpg,data = mtcars,binwidth=4)
ggplot(mtcars,aes(mpg))+geom_histogram(binwidth = 4)

r语言中pt函数的输入 r语言中的plot函数_数据分析_12


binwidth参数是调节横坐标的区间,你可以任意调节你认为合适的区间。条形图与直方图看起来相似,但是却是不一样的,条形图的x轴是一个确定的数值,而直方图是一个区间。

5.Density密度图(数据集:mtcars)

plot(density(mtcars$mpg))

r语言中pt函数的输入 r语言中的plot函数_r语言中pt函数的输入_13


如果就输入density(mtcars$mpg) 会发现只会输出相关的统计数据。

qplot(mpg,data = mtcars,geom = 'density')
ggplot(mtcars,aes(mpg))+geom_density()

r语言中pt函数的输入 r语言中的plot函数_图形_14

6.Boxplot箱线图(数据集:ToothGrowth)

箱线图可以查看异常值,如果有观察超出上下边界,那么就是异常值。

plot(ToothGrowth$supp, ToothGrowth$len)

r语言中pt函数的输入 r语言中的plot函数_ggplot2_15


plot函数能自动识别分类的字符串。

boxplot(len~supp,data = ToothGrowth)

r语言中pt函数的输入 r语言中的plot函数_plot_16

qplot(supp,len,data=ToothGrowth,geom = 'boxplot')
ggplot(ToothGrowth,aes(supp,len))+geom_boxplot()

r语言中pt函数的输入 r语言中的plot函数_图形_17


以上都是最基础的作图方法,后续还可以改变参数来进行微调。