1 繪圖
1.1 條形圖 barplot() (針對離散型變量)
library(vcd)
dat<-Arthritis
counts<-table(dat$Improved)
解釋:table求數據框中間取值的頻數

(1)簡單條形圖(一個變量,一維)
barplot(counts,main="Simple Bar Plot",xlab="Improvement",ylab="Frequency")

(2)堆砌條形圖(兩個變量,二維)
barplot(counts,col=c("green","yellow","red"))

(3)分組條形圖
barplot(counts,col=c("green","yellow","red"),beside=T)
解釋:beside設置條形圖是否需要分組

(4)均值條形圖
state<-data.frame(state.region,state.x77) #使用內置數據集,構造一個數據框
mean<-aggregate(state$Illiteracy,by=list(state.region),FUN=mean)
解釋:aggregate()匯總函數,state$Illiteracy根據文盲率這個變量,by分組,state.region根據地區分組,FUN=mean匯總函數求平均(注:求每個區域region對應文盲率Illiteracy得平均mean)
mean<-mean[order(mean$x),] #對行標簽對象x排序

barplot(mean$x,names.arg = mean$Group.1)
解釋:第一個參數mean$x是畫圖的對象,第二個參數names.arg是繪制在每個條形或條形組下面的名稱的向量。如果省略了這個參數,那么如果這是一個矢量,名字將從height的名字屬性中提取,如果是一個矩陣,則從列名中提取。

錯誤:缺少參數“height”,也沒有缺省值

修正:畫圖時參數沒有指定具體

(5) 棘狀圖
counts<-table(dat$Improved,dat$Treatment)

spine(counts,main="Spinogram Example")

1.2 餅圖 pie(x,labels)
(1)簡單餅圖
slices<-c(10,12,4,16,8)
lbls<-c("US","UK","Austrlia","Germany","France")
pie(slices,lables=lbls,main="Simple Pie Chart",radius=0.8,lty=1)
解釋:radius設置餅圖直徑的大小,默認為1,lty=1設置線為實線

(2)進化餅圖
pct<-round(slices/sum(slices)*100) #把數字轉換成百分比

lbls1<-paste(lbls," ",pct,"%",sep="")
解釋:paste連接字符串函數,第一個參數lbls是連接的對象,第二個參數是空格,第三個參數是百分比,第四個參數是連接符號%,第五個參數是分隔符sep

pie(pct,labels=lbls1,lty=1)

(3) 扇形圖 fan.plot
library(plotrix)
slices<-c(10,12,4,16,8)
lbls<-c("US","UK","Austrlia","Germany","France")
pie(slices,lbls)
fan.plot(slices,labels = lbls,lty=1)

1.3 直方圖 hist() (針對連續型變量)
(1)簡單直方圖
dat<-mtcars
hist(dat$mpg,lty=1)

(2)進化直方圖
hist(dat$mpg,col="green",breaks=12,lty=1)
解釋: hist畫直方圖,第一個參數dat$mpg是畫圖的對象,col="green"顏色填充為綠色,breaks=12把變量分為12組,lty=1設置為實線

(3)再進化直方圖
hist(dat$mpg,col="green",breaks=12,freq=F,lty=1) #freq=F設置右側刻度是百分比
rug(jitter(dat$mpg)) #軸虛圖,下方一個個黑色的短線
lines(density(dat$mpg),col="red",lwd=2,lty=1)
解釋:lines表示在此圖的基礎上作圖,而不是單獨畫出來,density概率分布的估計,col設置線條的顏色,lwd設置線條的粗細,lty=1設置為實線,lty=2設置為虛線

box() #把圖框起來

1.4 核密度圖 density()
(1)簡單核密度圖
d<-density(dat$mpg) #mpg單位汽車里程數
plot(d,main="title",lty=1) #畫曲線
polygon(d,col="green",border="red",lty=1) #給概率密度曲線填色
rug(dat$mpg,col="bule) #添加軸虛圖

(2)可比較的核密度圖
library(sm) #加載包
attach(mtcars) #確定本操作均在數據集mtcars下
cyl.f<-factor(cyl,levels=c(4,6,8),labels=c("4 cylinder","6 cylinder","8 cylinder"))
解釋:cyl把變量cyl設置為因子型,levels=c(4,6,8)這是cyl的幾個水平標簽,labels設置圖例標簽
sm.density.compare(mpg,cyl,xlab="Miles Per Gallon")
解釋:sm.density.compare是比較畫核密度曲線的,mpg,cyl這是要比較的兩個變量,xlab設置橫軸標簽
title(main="MPG Distribution by Car Cylinder") #設置圖形標題
colfill<-c(2:(1+length(levels(cyl.f)))) #設置顏色

legend(locator(1),levels(cyl.f),fill=colfill) #在圖上點一下就出現圖例
解釋:legend該函數可用於為繪圖添加圖例,可以用對函數locator(1)的調用來代替x和y參數(x 和y 用來定位圖例的x和y坐標),fill如果指定,該參數將導致用指定顏色填充的方框(或用指定顏色的陰影)出現在圖例文本旁邊。
detach(mtcars)

1.5 箱線圖 boxplot()
(1)標准箱線圖
boxplot(mtcars$mpg,main="box ploy",ylab="Miles per Gallon")
箱線圖理解:中間這跟黑色線代表是中位數,說明單位汽車行駛的英里數大概是20,黑色線的上下,也就是箱子上下的邊界分別是上四分位數(最高的25%)和下四分數(最低的25%),虛線的上端和下端代表最大值和最小值

(2)分組箱線圖
boxplot(mpg~cyl,data=mtcars)
圖形理解:不用的汽車發動車缸數能行駛的英里數比較,可以看出4缸汽車開的的英里數高,即4缸的車省油

一個自變量:cyl
boxplot(mpg~cyl,data=mtcars,varwidth=T,notch=T)
解釋:varwidth=T根據樣本大小調整粗細,notch=T生成帶槽線的箱線圖

兩個自變量:cyl,am
mtcars$cyl.f<-factor(mtcars$cyl,levels = c(4,6,8),labels = c("4","6","8"))
mtcars$am.f<-factor(mtcars$am,levels = c(0,1),labels = c("auto","standard"))
boxplot(mpg~am.f*cyl.f,data=mtcars,varwidth=T,col=c("red","green"))
解釋:cyl表示汽車的缸數,am表示汽車是自動擋還是手動擋,levels表示自變量的取值,labels表示橫坐標軸刻度的標簽,varwidth=T根據樣本大小調整粗細

(3)小提琴圖 vioplot()
library(vioplot)
x1<-mtcars$mpg[mtcars$cyl==4]
x2<-mtcars$mpg[mtcars$cyl==6]
x3<-mtcars$mpg[mtcars$cyl==8]
vioplot(x1,x2,x3,names = c("4 cyl","6 cyl","8 cyl"),col = "gold")
圖形解釋:白色點代表其中位數,曲線可以清楚的看到其分布

1.6 點圖
(1)原始點圖
dotchart(mtcars$mpg,labels=row.names(mtcars),cex=.7,main="Gas Mileage for Car Models",xlab="Miles Per Gallon")
解釋:dotchart畫點圖,mtcars$mpg畫圖的對象,labels=row.names(mtcars)指定左邊顯示的標簽,cex=.7字體的大小縮放為0.7,main設置標題,,xlab設置橫坐標軸的顯示

(2)排序后的點圖
x<-mtcars[order(mtcars$mpg),] #讓數據集按照mpg排序
> x$cyl<-factor(x$cyl) #把變量cyl設置為因子型
> x$color[x$cyl==4]<-"red"
> x$color[x$cyl==6]<-"blue"
> x$color[x$cyl==8]<-"darkgreen"
dotchart(x$mpg,labels = row.names(x),cex=.7,groups = x$cyl,gcolor=x$color,pch=19)
解釋:dotchart畫點圖,mtcars$mpg畫圖的對象,labels=row.names(mtcars)指定左邊顯示的標簽,cex=.7字體的大小縮放為0.7,groups()分組顯示,gcolor=x$color填充顏色,pch=19設置顯示為實心圓點
圖形解釋:可以看出4缸的汽車最省油,8缸的汽車最不省油

