標籤:

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:數據可視化 |