繼續練習,用dotchart語句繪制點圖。
步驟1.將原圖重新輸入為excel表,原圖是20多個城市2016年12月的供求比(sdratio),庫存(stock)的比較。另外還有同比等一些數據,我先簡化掉了。
install.packages("openxlsx")
library(openxlsx)
readFilePath<-"F:/citystock.xlsx"
mydata<-read.xlsx(readFilePath,"Sheet1")
然后就可以繪圖了,還滿簡單的。
dotchart(mydata$stock,labels=mydata$city,cex=0.7)
仔細看一下原圖表可以發現,雖然城市很多,但供求比都在0.5-1之間,如果我們想要排序繪圖,除了先在excel或者矩陣里排序,也可以直接利用dotchart的分組功能。
dotchart(mydata$stock,labels=mydata$city,groups=mydata$sdratio,col=rainbow(mydata$sdratio*10),pch=19,cex=0.7)
各個城市就自動按照供求比的數值分類了。
但這里遇到了一個坑,按照供求比*10得出整數,賦予彩虹色值,但顏色與供求比的分組并不統一,不知道是怎么回事?
只好比較笨的各個賦值
mydata$color[mydata$sdratio==1]<-"red"
......
mydata$color[mydata$sdratio==0.5]<-"hotpink"
dotchart(mydata$stock,labels=mydata$city,groups=mydata$sdratio,col=mydata$color,pch=19,cex=0.7)
結果就很好了。
在某些案例里,并不是按照數值分類,而是按照產品A,產品B,產品C有不同的列,這樣可以運用melt函數,將列打散變為:
城市1 產品A?
城市1 產品B
城市1 產品C
....
install.packages("reshape");library(reshape) #需要安裝reshape包
data2<-melt(mydata)
基本上dotchart語句還是比較簡單的,它和散點圖(plot)的區別是,散點圖是很明確的(x,y)來定位,進而可做線性回歸等分析。而dotchart可以只有一個維度,而利用另一個維度進行分組。
之前R語言繪圖的相關展現方法