1. 程式人生 > >R語言中簇狀條形圖的畫法

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())