R語言中簇狀條形圖的畫法
前兩天為了畫一張圖,找了半天R語言畫簇狀圖的方法也都沒有找到合適的。今天無意看見了一段程式碼,突然發現,原來如此。下面分享一下這個畫法。
生活中我們會遇到很多類似於這樣的圖,比如2015-2018年這幾年某幾樣產品的銷售額的比較等。下面看一下這個程式碼(我從網上拿來的,若有侵權,請和我聯絡)
data<-data.frame(
Conpany = c("Apple","Google","Facebook","Amozon","Tencent"),
Sale2013 = c(5000,3500,2300,2100,3100),
Sale2014 = c(5050,3800,2900,2500,3300),
Sale2015 = c(5050,3800,2900,2500,3300),
Sale2016 = c(5050,3800,2900,2500,3300))
library(reshape2)
#melt意為溶解含義,意思就是放進去一個東西,然後出來一個本質一樣但是形狀不一樣了的東西。melt在reshpe2包裡面。語法結構:melt(data, ..., na.rm = FALSE, value.name = "value")
mydata<-melt(data,id.vars="Conpany",variable.name="Year",value.name="Sale")
ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")
就會出來這個圖。
感覺顏色很醜,換一種風格, ggthemes 主題包將一些期刊、軟體的圖表風格進行了整理,做成擴充套件包,方便地格式化出不同風格的圖表
install.packages("ggthemes")
library(ggplot2)
library(ggthemes)
ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+
theme_wsj()+
scale_fill_wsj("rgby", "")+
#scale_fill_wsj(palette = "colors6", ...)
#palette character The color palette to use: . "rgby", "red_green", "black_green", "dem_rep", "colors6"
guides(fill=guide_legend(title=NULL))+
ggtitle("The Financial Performance of Five Giant")+
theme(axis.title = element_blank())
ggplot(mydata,aes(Conpany,Sale,fill=Year))+
geom_bar(stat="identity",position="dodge")+
theme_economist(base_size=14)+
scale_fill_economist()+
guides(fill=guide_legend(title=NULL))+
ggtitle("The Financial Performance of Five Giant")+
theme(axis.title = element_blank())