请选择 进入手机版 | 继续访问电脑版
楼主: xiaocai_82
27677 137

[实际应用] 【原创】R语言吊炸天的图表技能秀,办公室菜鸟华丽转身“白骨精”   [推广有奖]

院士

18%

还不是VIP/贵宾

-

威望
0
论坛币
5001 个
通用积分
4695.5476
学术水平
260 点
热心指数
244 点
信用等级
215 点
经验
61511 点
帖子
1621
精华
5
在线时间
1163 小时
注册时间
2014-8-27
最后登录
2020-7-20

初级学术勋章 初级热心勋章

xiaocai_82 发表于 2016-5-27 23:09:18 |显示全部楼层 |坛友微信交流群
相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
关于R语言,ABC我就不多说了,因为我也才学了一周时间,讲也比较肤浅,“空谈误国,不如实干兴邦”。还是无私的把琢磨出来的实战经验奉献给大家。做为办公室的小白领,做图表是必备技能,怎么在领导日益刁钻的审美下,做出吊炸天的惊世之作,升职加薪,当上总经理,出任CEO,迎娶白富美,走上人生巅峰。那就从这里开始吧,会持续更新,请大家关注。
第一回:业务指标地图展现秀
作为任何有多地区业务的公司,如果能在地图上展示业绩,是一件多么酷的事情,下面上图片。
Rplot02.png

这张图展现的是江苏某行的存款规模,越红说明越高,苏州是第一梯队,南京,无锡市第二梯队,徐州、南通、常州是第三梯队,其他惨白的都是苏北地区,是第四梯队。当然数据方面我进行了加工,与真实数据还是有出入的,只是做个范例。

附:更新目录
1、第一回:业务指标地图展现秀 ………….1、3、4楼
2、第二回:极具商务气质的条形图…………12、13楼
3、第三回:极简代码画出股票走势图…………....17楼
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:R语言 办公室 白骨精 第一梯队 第二梯队 小菜 办公室 白骨精 技能

已有 11 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
tulipsliu + 5 + 5 + 5 精彩帖子
YK802318 + 1 + 1 + 1 奖励积极上传好的资料
xddlovejiao1314 + 100 + 5 + 5 + 5 精彩帖子
sfhsky + 1 + 1 精彩帖子
kongqingbao280 + 40 精彩帖子
zl89 + 60 精彩帖子
h2h2 + 5 + 5 + 5 精彩帖子
aclyang + 60 精彩帖子
日新少年 + 3 + 3 + 3 精彩帖子
残阳_等待 + 60 精彩帖子

总评分: 经验 + 360  论坛币 + 60  学术水平 + 22  热心指数 + 21  信用等级 + 20   查看全部评分

本帖被以下文库推荐

line_us 发表于 2016-5-27 23:20:19 |显示全部楼层 |坛友微信交流群
吊炸天的惊世之作,

使用道具

xiaocai_82 发表于 2016-5-27 23:21:56 |显示全部楼层 |坛友微信交流群
R语言制作图表的步骤很简单,一般无非是以下流程,很多人想不明白为什么必须要用R语言来画图,有两个优点:1、可以画一些excel无法画的图,如地图等,2、可以自动作图,每次把数据更新一下,无论是文本,还是表格的格式,运行程序就可以一键生成。





未命名-1.png
已有 2 人评分学术水平 热心指数 信用等级 收起 理由
dcwang1233 + 1 + 2 精彩帖子
日新少年 + 1 + 1 + 1 精彩帖子

总评分: 学术水平 + 2  热心指数 + 3  信用等级 + 1   查看全部评分

使用道具

xiaocai_82 发表于 2016-5-27 23:35:02 |显示全部楼层 |坛友微信交流群
第一步:导入必用包,不管什么包,我一般全部默认,否则有时就会出些莫名其妙的报错,原则是“不管白包黑包,只要能画图就是好包”,“少一包不如多一包”。CA=windowsFont("微软雅黑")定义自己喜欢的字体。
  1. setwd("c:/r/map/")
  2. library(ggplot2)
  3. library(sp)
  4. library(maptools)
  5. library(mapproj)
  6. library(maps)
  7. windowsFonts(CA=windowsFont("微软雅黑"))
复制代码
第二步:读入地图数据信息,这边导入的是到地市的中国地图SHP文件,我们想展现的是江苏部分,需要筛出来,这样我们用江苏的地区代码32,为什么是32呢,想想江苏同学的身份证开头吧,所以要筛到那个层级就看身份证开头,到南京的话就筛选3201。前面在某文章看到复杂的筛选方法,还要反查代码,还是觉得我这个取巧办法好。
  1. china_shp<-readShapePoly("STATE_poly")
  2. jiangsu<-china_shp[substr(as.character(china_shp$ADCODE99), 1, 2) == "32",]
  3. jiangsu1<-fortify(jiangsu)
复制代码
第三步:读取业务信息:zhibiao.csv是各市对应指标,city.csv是每块地市图的中心坐标及地市名称。
  1. myepidat = data.frame(id = unique(sort(jiangsu1$id)))
  2. tmp = read.csv("zhibiao.csv")
  3. myepidat$zhibiao = tmp$zhibiao
  4. city <- read.csv("city.csv")
复制代码
第四步:画出精美图形,先画地图的底图,再加上地市名称,再根据指标情况涂上深浅颜色。
  1. p<-ggplot(myepidat)
  2. p<-p+geom_map(aes(map_id = id, fill =zhibiao),color="pink3", map = jiangsu1)
  3. p<-p+geom_point(aes(x=long,y=lat),color="red",data=city)
  4. p<-p+geom_text(aes(x =long,y = lat+0.15,label = city),data = city,color="black",size=4,family="CA")
  5. p<-p+scale_fill_gradient(high = "red",low = "white")
  6. p<-p+expand_limits(x=jiangsu1$long,y=jiangsu1$lat)+coord_map()
  7. p<p+theme(panel.grid=element_blank(),panel.background=element_blank(),axis.text=element_blank(),
复制代码


已有 5 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
txje + 1 + 1 + 1 精彩帖子
残阳_等待 + 60 精彩帖子
dcwang1233 + 2 + 2 + 2 精彩帖子
日新少年 + 1 + 1 + 1 精彩帖子
jiangbeilu + 10 精彩帖子

总评分: 经验 + 60  论坛币 + 10  学术水平 + 4  热心指数 + 4  信用等级 + 4   查看全部评分

使用道具

xiaocai_82 发表于 2016-5-27 23:39:32 |显示全部楼层 |坛友微信交流群
代码发的时候需要审核,请大家稍等,今天就到此,后面持续更新。

使用道具

xiaocai_82 发表于 2016-5-27 23:46:19 |显示全部楼层 |坛友微信交流群
line_us 发表于 2016-5-27 23:20
吊炸天的惊世之作,
标题党是必须的

使用道具

fafazai 发表于 2016-5-28 09:51:51 |显示全部楼层 |坛友微信交流群
地图怎么画呢

使用道具

fafazai 发表于 2016-5-28 09:55:27 |显示全部楼层 |坛友微信交流群
另外R做的图,离开R能更新吗

使用道具

xiaocai_82 发表于 2016-5-28 10:15:55 来自手机 |显示全部楼层 |坛友微信交流群
fafazai 发表于 2016-5-28 09:55
另外R做的图,离开R能更新吗
不能

使用道具

xiaocai_82 发表于 2016-5-28 10:17:16 来自手机 |显示全部楼层 |坛友微信交流群
fafazai 发表于 2016-5-28 09:51
地图怎么画呢
上面代码足以,地图读取地图的数据,然后用ggplot函数画出来的,画哪个地区都有参数来设定。

使用道具

您需要登录后才可以回帖 登录 | 我要注册

本版微信群
加好友,备注cda
拉您进交流群

京ICP备16021002-2号 京B2-20170662号 京公网安备 11010802022788号 论坛法律顾问:王进律师 知识产权保护声明   免责及隐私声明

GMT+8, 2024-4-17 02:48