前两天为了画一张图,找了半天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())
#https://blog.csdn.net/kmd8d5r/article/details/79386843详细见theme主题设置
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())