R语言数据可视化教程(ggplot2)_R基础与散点图的绘制

# 第一章 R基础
install.packages(c("ggplot2","gcookbook"))
library(ggplot2)
library(gcookbook)


# 加载分隔符式的文本文件
# data <- read.csv("datafile.csv")
# data <- read.csv("datafile.csv",header=FALSE)
# 手动为列名赋值
# names(data) <- c("Column1","Column2","Column3")
# 用sep参数来设置分割符号,如果为空格分割,使用sep=" ";如果是制表符分割,使用\t
# data <- read.csv("datafile.csv",sep="\t")
# 默认情况下数据集中的字符串(string)会被视为因子(factor)处理
# data <- read.csv("datafile.csv",stringsAsFactors=FALSE)
# 转换为因子
# data$Sex <- factor(data$Sex)
# str(data)
# read.csv()是对read.table()一个便捷的封装函数


# 从Excel文件中加载数据
# 只需要安装一次
install.packages("xlsx")
library(xlsx)
library(rJava)


# 读取xlsx格式文件
# data <- read.xlsx("datafile.xlsx",1)
# 读取老版本的xls格式文件
install.packages("gdata")
library(gdata)
# data <- read.xls("datafile.xls")
# 使用read.xlsx()加载工作表时,既可以用序数参数sheetIndex来指定,也可以用工作表名参数sheetName来指定
# data <- read.xlsx("datafile.xlsx",sheetIndex=2)
# data <- read.xlsx("datafile.xlsx",sheetName="Revenues")
# 使用read.xls()加载工作表时,可以用序数参数sheet来指定
# data <- read.xls("datafile.xls",sheet=2)


# 对于xlsx包,需要安装Java,对于gdata包,需要安装Perl


# 从SPSS文件中加载数据
# foreign包中的函数read.spss()可以读取SPSS文件。若要读取SPSS文件中的第一张表:
install.packages("foreign")
library(foreign)
# data <- read.spss("datafile.sav")
# foreign包中还有以下几种读取其他格式文件的函数:
# read.octave():Octave和MATLAB
# read.systat():SYSTAT
# read.xport():SAS XPORT

# read.dta():Stata

# 快速探索数据
# 2.1 绘制散点图
# 使用plot()函数可以绘制散点图
plot(mtcars$wt,mtcars$mpg)
# 对于ggplot2()系统,可用qplot()函数
library(ggplot2)
qplot(mtcars$wt,mtcars$mpg)
# 如果绘图所用的两个参数包含在同一个数据框内,则可以运行下面的命令
qplot(wt,mpg,data = mtcars)
# 或者
ggplot(mtcars,aes(x=wt,y=mpg))+geom_point()


# 2.2 绘制折线图
# 使用plot()函数绘制折线图时需向其传递一个包含x值的向量和一个包含y值的向量,并使用参数type="l"
plot(pressure$temperature,pressure$pressure,type = "l")
# 如果要向图形中添加数据点或者多条折线,则需先用plot()函数绘制第一条折线,再通过points()函数和lines()函数分别添加数据点和更多折线
plot(pressure$temperature,pressure$pressure,type = "l")
points(pressure$temperature,pressure$pressure)


lines(pressure$temperature,pressure$pressure/2,col="red")
points(pressure$temperature,pressure$pressure/2,col="red")
# 在ggplot2中,可以使用qplot()函数并将参数设定为geom="line"
library(ggplot2)
qplot(pressure$temperature,pressure$pressure,geom = "line")
qplot(temperature,pressure,data = pressure,geom = "line")
ggplot(pressure,aes(x=temperature,y=pressure))+geom_line()


# 添加数据点
qplot(temperature,pressure,data = pressure,geom = c("line","point"))
ggplot(pressure,aes(x=temperature,y=pressure))+geom_line()+geom_point()


# 2.3 绘制条形图
# 对变量的值绘制条形图,使用barplot()函数,并向其传递两个向量作为参数,第一个向量用来设定条形的高度,第二个向量用来设定每个条形对应的标签(可选)
# 如果向量中的元素已被命名,则系统会自动使用元素的名字作为条形标签
barplot(BOD$demand,names.arg = BOD$Time)
# 要计算向量中各个类别的频数,可以使用table()函数
table(mtcars$cyl)
# 生成频数表
barplot(table(mtcars$cyl))
# 对于ggplot2系统,使用qplot()函数,绘制变量值的条形图时需将参数设定为geom="bar"和stat="identity"
library(ggplot2)
# qplot(BOD$Time,BOD$demand,geom = "bar", stat = "identity") 报错!!!
# qplot(factor(BOD$Time),BOD$demand,geom = "bar",stat = "identity")
# 注意变量x分别为连续取值和离散取值时输出结果的差异
qplot(mtcars$cyl)
qplot(factor(mtcars$cyl))
# 如果参数向量包含在同一个数据框内
# qplot(Time,demand,data = BOD,geom = "bar",stat = "identity")
ggplot(BOD,aes(x=Time,y=demand))+geom_bar(stat = "identity")
# 频数条形图
qplot(factor(cyl),data = mtcars)
ggplot(mtcars,aes(x=factor(cyl)))+geom_bar()


# 2.4 绘制直方图
# 使用hist()函数绘制直方图
hist(mtcars$mpg)
# 通过breaks参数指定大致组距
hist(mtcars$mpg,breaks = 10)
# 对于ggplot2系统,使用qplot()函数
qplot(mtcars$mpg)
library(ggplot2)
qplot(mpg,data = mtcars,binwidth=4)
ggplot(mtcars,aes(x=mpg))+geom_histogram(binwidth = 4)


# 2.5绘制箱线图
# 使用plot()函数绘制箱线图时向其传递两个向量:x和y。当x为因子型变量时,默认绘制箱线图
plot(ToothGrowth$supp,ToothGrowth$len)
# 公式语法
boxplot(len~supp,data = ToothGrowth)
# 在x轴上引入两变量的交互
boxplot(len~supp+dose,data = ToothGrowth)
# 对于ggplot2包,使用qplot()函数,参数设定为geom="boxplot"
library(ggplot2)
qplot(ToothGrowth$supp,ToothGrowth$len,geom = "boxplot")
qplot(supp,len,data = ToothGrowth,geom = "boxplot")
ggplot(ToothGrowth,aes(x=supp,y=len))+geom_boxplot()
# 使用interaction()函数将分组变量组合在一起也可以绘制基于多组变量的箱线图
# 使用三个独立的向量参数
qplot(interaction(ToothGrowth$supp,ToothGrowth$dose),ToothGrowth$len,geom = "boxplot")
# 也可以以数据框中的列作为参数
qplot(interaction(supp,dose),len,data=ToothGrowth,geom = "boxplot")
ggplot(ToothGrowth,aes(x=interaction(supp,dose),y=len))+geom_boxplot()


# 2.6 绘制函数图像
# 使用curve()函数绘制函数图像,使用时需向其传递一个关于变量x的表达式
curve(x^3-5*x,from = -4,to=4)
# 将参数设置为add=TRUE可以向已有图形添加函数图像
# 绘制用户自定义的函数图像
myfun <- function(xvar){
  1/(1+exp(-xvar+10))
}
curve(myfun(x),from = 0,to=20)
# 添加直线
curve(1-myfun(x),add = TRUE,col="red")
# 对于ggplot2,使用qplot()函数。使用时需设定stat="function"和geom="line",并向其传递一个输入和输出皆为数值型向量的函数
library(ggplot2)
# 将x轴的取值范围设定为0到20
qplot(c(0,20),fun=myfun,stat = "function",geom = "line")
ggplot(data.frame(x=c(0,20)),aes(x=x))+stat_function(fun = myfun,geom = "line")

你可能感兴趣的:(数据挖掘与分析策略)