R語言:表格的條形圖轉化
接著上一篇文章R語言:表格的線圖轉化繼續練習,這次是直方圖。
前段時間在視頻課程學習過直方圖案例,有一個citysales表格,表示3種產品,在5個城市的銷量。
運用的是「barplot」命令,程序如下:
citysales<-read.csv("citysales.csv")
x<-barplot(as.matrix(citysales[,2:4]),beside=TRUE,
legend.text=citysales$City,args.legend=list(bty="n",horiz=TRUE),
col=brewer.pal(5,"Set1"),border="black",ylim=c(0,100))
自己用來練習的表格,還是上次那個。
因為這次想用案例中的色庫,所以安裝了「RColorBrewer」包。
install.packages("RColorBrewer")
library(RColorBrewer)
然後按照案例中語句,寫了一下。顏色參數有一點改動。
barplot(as.matrix(mydata[,2:3]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"))
噫,為什麼2006一列,2016一列?看回案例,barplot命令是根據列分組的,所以這裡也根據了兩個年份分組。
這樣的圖形不是我想要的,所以用 t命令 把mydata的行列互相置換了一下。
b<-as.matrix(mydata[,2:3]); c<-t(b)
barplot(c,las=2,beside=TRUE,col=brewer.pal(2,"Set2"))
這次出現的圖形就對了,但是x軸的圖標不對。區域名消失了。
很奇怪的是,如果整個mydata置換,就會把整個matrix都變成字元,barplot就不能只列印其中的兩列,必須置換成數值
d<-as.matrix(mydata);e<-t(d)
barplot(as.numeric(e[2:3,]),las=2,col=brewer.pal(3,"Set2"),beside=TRUE,ylim=c(0,95000))
圖形跟上圖一樣,就是沒有x軸的數字了。
如果索性在excel表裡手動置換行和列,也是可以的。這裡我沒有排序。
barplot(as.matrix(mydata2[,2:16]),las=2,beside=TRUE,col=brewer.pal(2,"Set2"),ylim=c(0,95000))
如果去掉「beside=TRUE」語句,則形成層疊圖。再加上增長幅度曲線rate。但是因為增長幅度數值相對於幾萬的房價比較小,所以乘以5000倍才能看得見。
lines(mydata$rate*5000,col="gold")
這裡又出現了一個缺點,漲幅曲線和柱狀圖差了一個,當然在excel表是完全對應的。還沒有找出原因。望各位大神指教。
這次的練習:
1.條形圖的轉化
2.兩種圖形的疊加
3.RColorBrew包及相關命令
不明白/沒做出來的地方
1.用barplot列印matrix的格式
2.matrix怎麼加表頭
3.Line和條形圖的對應
小白作業,歡迎指教。
推薦閱讀:
※DataMap For Excel 高德版 2.5
※數據可視化的開源方案: Superset vs Redash vs Metabase (二)
※圖解機器學習
※(R)如何利用plotly製作交互圖表,並導出為HTML文件
※小白數據分析之「IMDB電影」
TAG:數據可視化 |