barplot()函數
1.柱形圖
> sales<-read.csv("citysales.csv",header=TRUE) #讀取數據 > barplot(sales$ProductA,names.arg=sales$City, #設置Y軸,X軸
+col="black") #設置顏色
結果如下圖:
2.水平柱形圖
> sales<-read.csv("citysales.csv",header=TRUE) #讀取數據 > barplot(sales$ProductA,names.arg=sales$City, #設置Y軸,X軸 + horiz=TRUE, #繪制水平柱形圖 + col="black") #設置顏色
結果如下圖:
3.彩色柱形圖
> sales<-read.csv("citysales.csv",header=TRUE) > barplot(as.matrix(sales[,2:4]), #選擇sales數據集的2-4列,形成矩陣 + beside=TRUE, #不是堆疊效果 + legend=sales$City, #設置樣例 + col=heat.colors(5), #生成顏色 + border="white") #邊框為白色
結果如下圖:
4.百分比堆疊柱形圖
> library(RColorBrewer) > citysalesperc<-read.csv("citysalesperc.csv") > par(mar=c(5,4,4,8),xpd=T) #xpd設置畫圖界限 > barplot(as.matrix(citysalesperc[,2:4]), + col=brewer.pal(5,"Set1"),border="white", + ylab="Sales Revenue (1,000's of USD)", + main="Percentage Sales Figures") > legend("right",legend=citysalesperc$City, + bty="n", + inset=c(-0.3,0),fill=brewer.pal(5,"Set1")) #inset設置圖例距邊緣的位置
5.調整柱形圖的寬度,間隔和顏色
> citysales<-read.csv("citysales.csv") > barplot(as.matrix(citysales[,2:4]), + beside=TRUE, + legend.text=citysales$City, #barplot函數內設置圖例名稱 + args.legend=list(bty="n",horiz=T), #barplot函數內設置圖例樣式
+ col=c("#E5562A","#491A5B","#8C6CA8","#BD1B8A","#7CB6E4"), #調整顏色
+ border=FALSE,
+ space=c(0,5), #space=c(a,b)a調整每條之間的距離,b調整每組之間的距離
+ ylim=c(0,100),ylab="Sales Revenue(1,000's of USD)",
+ main="Sales Figures")
6.柱形圖數據標注
> y<-barplot(as.matrix(citysales[,2:4]), + beside=TRUE,horiz=TRUE, #水平不堆疊柱形圖 + legend.text=citysales$City,args.legend=list(bty="n"), + col=brewer.pal(5,"Set1"),border="white", + xlim=c(0,100),xlab="Sales Revenue(1,000's of USD)", + main="Sales Figures") > x<-as.matrix(citysales[,2:4]) > text(x+2,y,labels=as.character(x)) #標注數據
> rain<-read.csv("cityrain.csv") > y<-barplot(as.matrix(rain[1,-1]), #取除了第一列的第一行數據 + horiz=T,col="white", + yaxt="n",main=" Rainfall in January",xlab="Rainfall(mm)") > x<-0.5*rain[1,-1] #設置X為中間位置 > text(x,y,colnames(rain[-1])) #取除了第一列的數據的列名進行標注
7.柱形圖誤差標注
> sales<-t(as.matrix(citysales[,-1])) > colnames(sales)<-citysales[,1] > x<-barplot(sales,beside=T,legend.text=rownames(sales), + args.legend=list(bty="n",horiz=T), + col=brewer.pal(3,"Set2"),border="white",ylim=c(0,100), + ylab="Sales Revenue (1,000's of USD)", + main="Sales Figures") > arrows(x0=x,y0=sales*0.95, #設置下端位置 + x1=x,y1=sales*1.05, #設置上端位置 + angle=90, #設置箭頭斜邊和垂直線的夾角 + code=3, #設置箭頭類型 + length=0.04, #設置箭頭斜邊的長度 + lwd=0.4) #設置箭頭垂直線的寬度