#install.packages("ggplot2")
rm() #清除所有物件
library(graphics)
#library(ggplot2)
#setwd("d:/Rdata Practice/R BasicLab") #設定工作區
data(iris)
x=sample(1:150,50) #從1~150中隨機挑選50個數字
plot(iris[x,5])
y=table(iris[x,5])
barplot(y,horiz=TRUE,las=1)
pie(y)
plot(iris[,3:4])
plot(Petal.Width~Petal.Length,data=iris)
plot(iris[,1:3])
plot(~Sepal.Length+Sepal.Width+Petal.Length,data=iris)
plot(iris[,5],iris[,1])
boxplot(iris[,1]~iris[,5])
boxplot(Sepal.Length~Species,data=iris)
boxplot(iris[,1:2])
hist(iris[, 1], breaks = 4)
par(mfrow=c(2,2))
plot(iris[x,5])
plot(Petal.Width~Petal.Length,data=iris)
boxplot(Sepal.Length~Species,data=iris)
hist(iris[, 1], breaks = 4)
dev.off()#把圖型清除
#install.packages("ggplot2")
#install.packages('ggplot2',repos='http://cran.us.r-project.org')
#install.packages("ggplot2", dependencies=TRUE)
library(ggplot2)
require(datasets)
head(airquality) #空氣品質的資料集airquality
require(ggplot2)
# library 與 require 都是載入 package,但是最大的差別在於,library 如果是載入的 package 不存在,是會發生 error 程式停止,但是 require 卻不會。
這是ggplot2裡面比較簡易的函式,使用上很像plot()的觀念,不同的是,我們可以單純利用這個函式,改變其中geom的參數,就能畫出直方圖、散佈圖、合鬚圖…等等圖形。
qplot(x=Ozone,
data=airquality,
geom="histogram", # 圖形=histogram
main = "Histogram of Ozone",
xlab="Ozone(ppb)",
binwidth = 25, # 每25單位為一區隔
fill= Month # 以顏色標註月份,複合式的直方圖
)
qplot(x=Temp,
y=Ozone,
data=airquality,
geom="point", # 圖形=scatter plot
main = "Scatter Plot of Ozone-Temp",
xlab="Temp",
ylab="Ozone(ppb)",
color= Month # 以顏色標註月份,複合式的散布圖
)
qplot(x=Temp,
data=airquality,
geom="density", # 圖形=density
xlab="Temp",
color= Month # 以顏色標註月份,複合式的機率密度圖
)
qplot(x=Month,
y=Ozone,
data=airquality,
geom="boxplot", # 圖形=boxplot
xlab="Temp",
color= Month # 以顏色標註月份,複合式的合鬚圖
)
在開始檢視不同樣式的資料探索圖形之前,我們用下表對這些geom()有一個概觀:
# 準備一個畫布,資料集=airquality
canvas<- ggplot(data=airquality)
canvas
# 方才準備的畫布
canvas +
# 以直方圖的圖形呈現資料
geom_histogram(aes(x=Ozone, # X 放Ozone
fill=Month # 根據月份顯示不同的顏色
)
)
# 方才準備的畫布
canvas +
# 以直方圖的圖形呈現資料
geom_histogram(aes(x=Ozone,
fill=Month) # 以粉紅色填滿
) +
# 用facet(),分別各畫一張各月份的直方圖
facet_grid(.~Month) # 因為Month放在右邊,故圖片以水平方向呈現
# 準備畫布
ggplot(data=airquality) +
# 散布圖對應的函式是geom_point()
geom_point(aes(x=Temp, # 用aes(),描繪散布圖內的各種屬性
y=Ozone,
main="Scatter Plot of Ozone-Temp",
color=Month)
) +
# 用geom_smooth()加上趨勢線
geom_smooth(aes(x=Temp,
y=Ozone)) +
# 用labs(),進行文字上的標註(Annotation)
labs(title="Scatter of Temp-Ozone",
x="Temp",
y="Ozone") +
# 用theme_bw(background white),改變主題背景成白色
# 更多背景設定: http://docs.ggplot2.org/current/ggtheme.html
theme_bw()
#我們也可以改用畫線的方式,呈現資料
ggplot(data=airquality) +
# 要畫線的話,對應的函式是geom_line()
geom_line(aes(x=Temp,
y=Ozone,
color=Month)
) +
# 用labs(),進行文字上的標註(Annotation)
labs(title="Line Plot of Temp-Ozone",
x="Temp",
y="Ozone") +
theme_bw()
#把上面那兩張圖,合併在一起
# 準備畫布
ggplot(data=airquality) +
# 散布圖對應的函式是geom_point()
geom_point(aes(x=Temp,
y=Ozone,
main="Scatter Plot of Ozone-Temp",
color=Month)
) +
# 要畫線的話,對應的函式是geom_line()
geom_line(aes(x=Temp,
y=Ozone,
color=Month)
) +
# 用labs(),進行文字上的標註(Annotation)
labs(title="Combination of Scatter and Line Plots",
x="Temp",
y="Ozone") +
theme_bw()