专栏首页数据小魔方R语言可视化——柱形图美化(簇状、堆积、百分比)

R语言可视化——柱形图美化(簇状、堆积、百分比)

昨天以最简单的单序列柱形图作为对象详细的讲解了关于套用主题以及图表美化的思路。

今天就我们常用的几种柱形图的衍生图表——簇状柱形图、堆积柱形图、百分比堆积柱形图的美化工作进行讲解。

我们还是以昨天的数据作为演示数据,同时添加两年度数据。

data<-data.frame(Name = c("苹果","谷歌","脸书","亚马逊","腾讯"),Conpany = c("Apple","Google","Facebook","Amozon","Tencent"),Sale2015 = c(5000,3500,2300,2100,3100),Sale2016 = c(5050,3800,2900,2500,3300))

由于今天的案例数据中有两个年份的数据,其实算是汇总过的二维表(宽数据),不符合R语言图表数据源的结构(一维表、长数据),所以需要使用reshape2包中的melt函数对数据进行重塑,将其变为长数据进行作图:

library(reshape2)

mydata <- melt(data1,id.vars="Conpany",variable.name="Year",value.name="Sale")

接下来就要使用语法作图喽,一定要瞪大眼睛哦~

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")

套用主题:

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj()

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+ggtitle("The Financial Performance of Five Giant")+theme_economist(base_size=14)+scale_fill_economist()+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))

堆积柱形图套用主题:

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="stack")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="stack")+ggtitle("The Financial Performance of Five Giant")+theme_economist(base_size=14)+scale_fill_economist()+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))

百分比堆积柱形图套用主题:

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="fill")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="fill")+ggtitle("The Financial Performance of Five Giant")+theme_economist(base_size=14)+scale_fill_economist()+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))

将以上所有图表通过添加旋转参数调整为条形图:

簇状条形形图:

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))+coord_flip()

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="dodge")+ggtitle("The Financial Performance of Five Giant")+theme_economist(base_size=14)+scale_fill_economist()+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))+coord_flip()

堆积条形图:

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="stack")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))+coord_flip()

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="stack")+ggtitle("The Financial Performance of Five Giant")+theme_economist(base_size=14)+scale_fill_economist()+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))+coord_flip()

百分比堆积条形图:

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="fill")+ggtitle("The Financial Performance of Five Giant")+theme_wsj()+scale_fill_wsj("rgby", "")+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))+coord_flip()

ggplot(mydata,aes(Conpany,Sale,fill=Year))+geom_bar(stat="identity",position="fill")+ggtitle("The Financial Performance of Five Giant")+theme_economist(base_size=14)+scale_fill_economist()+theme(axis.ticks.length=unit(0.5,'cm'))+guides(fill=guide_legend(title=NULL))+coord_flip()

以上还有好多可以修改的细节,比如旋转参数只旋转了绘图区,而x轴刻度线以及Y轴网格线仍然没有调整。

本文分享自微信公众号 - 数据小魔方(datamofang),作者:小魔方

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2016-09-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • R语言可视化——ggplot的theme订制

    ggplot作图系统在R预言诸多可视化包中之所以如此的风靡,除了它拥有自己的图层理念之外,我觉得还要归功于它对于图表细节元素的灵活调整。 对于ggplot的初学...

    数据小磨坊
  • 数据地图多图层对象的颜色标度重叠问题解决方案

    一篇旧文,解决一个困扰已经的小技术问题,权当是学习ggplot2以来的整理回顾与查漏补缺。 ---- 今天这一篇是昨天推送的基础上进行了进一步的深化,主要讲如何...

    数据小磨坊
  • 不经意间又发现了一个有趣又炫酷的包~

    算起来有四五天没有更新公众号了,说好的日更呢(~—~) 小伙伴儿们竟然都没有取关,真的好感动,今天正式回归,以后可能不会更新的那么频繁了,但是…… 内容的质量一...

    数据小磨坊
  • Python也能绘制艺术画?这里有一个完整教程

    我们知道Python作为一个程序语言,讲究的是严谨和逻辑;而艺术画似乎处于另一个维度,更多是无规则和随心所欲。然而我们却可以找到两者的交汇点。今天我们将学习如何...

    HuangWeiAI
  • 理解相似矩阵

    marsggbo
  • 用户活跃,指标波动该怎么分析?

    上一篇【用户流失,该怎么分析?】以后,有同学强烈呼吁写用户活跃。因为用户相关的话题很多,为了便于大家阅读,这里把各种话题做一个归类如下图,这样看着清楚一些。今天...

    接地气的陈老师
  • 【情人节关注】数据牵线定制爱情

    大数据文摘
  • Java基础巩固计划

    3.26-4.1 JVM 虚拟机的内容写五篇博客 解决以下问题: 1. Java的内存模型以及GC算法 2. jvm性能调优都做了什么 3. 介绍JVM中7个区...

    Janti
  • RustCon Asia 实录 | Rust 在国内某视频网站的应用

    hawkingrei(王维真),中间件高级开发工程师,开源爱好者,TiDB & TiKV Contributor。

    PingCAP
  • linux基础(day 33)

    10.11 Linux网络相关 linux网络相关 ifconfig命令,可以查看虚拟网卡,而ip addr命令则不能查看 ifconfig查看网卡ip(yum...

    运维小白

扫码关注云+社区

领取腾讯云代金券