R語言-畫柱形圖


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)                       #設置箭頭垂直線的寬度


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM