全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 R语言论坛
5834 37
2017-05-22
悬赏 1000 个论坛币 已解决
前段时间看到“柳叶刀”杂志上有一篇文章(原文献见附件),其中的一个图(Figure 3)很有意思。感觉是用ggplot做的(stack column + 极坐标)。

为此我假设了一套数据(见附件),试图仿做一下(见附图)。

只可惜
(1)画不出最外头那一圈代表疾病的分类,“A,B,C...”
(2)中间那个空白的圆圈怎么画
(3)那一圈缺刻,里头的年份,不知怎么画进去
(4)那些疾病种类的文本,字号能不能缩小一些,且旋转一定的角度?因为若不然,下方有些就会显示不全。

(5)整个图形的颜色填充,能不能设定为浅色?我附图太暗了

本人初学R,实在不会,故此悬赏1000个论坛币。请您把根据您的代码所画出来的图贴上,我若觉得确实可行,就将购买您设为1000论坛币的代码。


2.jpeg

原图尺寸 311.94 KB

2.jpeg

1.png

原图尺寸 141.21 KB

1.png

data.rar

大小:634.05 KB

 马上下载

本附件包括:

  • data.xlsx

paper.pdf

大小:715.89 KB

 马上下载

最佳答案

cheetahfly 查看完整内容

水平所限,逐渐试错拼凑出的来的。 首先,数据放在变量a中,数据变形的过程就不啰嗦了,最终变成了tidy data,共四个变量:“type”,“name”,“year”,“value”,其中前两个是factor,“year”是integer。 最后的效果如下: 另外,对于避免字重合的问题,我首先尝试着旋转45度,发现必然会有某个位置上的字存在着重合的风险,而且影响阅读体验,因此,我的建议是将比较短的标签放在正底部附近,人为调整一下顺序,就可 ...
二维码

扫码加我 拉你入群

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

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

全部回复
2017-5-22 10:20:29
水平所限,逐渐试错拼凑出的来的。
首先,数据放在变量a中,数据变形的过程就不啰嗦了,最终变成了tidy data,共四个变量:“type”,“name”,“year”,“value”,其中前两个是factor,“year”是integer。
复制代码
最后的效果如下:
PolarHeatMap.png

另外,对于避免字重合的问题,我首先尝试着旋转45度,发现必然会有某个位置上的字存在着重合的风险,而且影响阅读体验,因此,我的建议是将比较短的标签放在正底部附近,人为调整一下顺序,就可以解决该问题了。
二维码

扫码加我 拉你入群

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

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

2017-5-22 16:18:21
复制代码
附件列表
TIM截图20170522161819.png

原图尺寸 48.84 KB

TIM截图20170522161819.png

二维码

扫码加我 拉你入群

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

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

2017-5-22 16:32:57
代码里的美元符号显示不好。。。。有些细节其实还是用PS擦掉或添加,比花心思去写代码更划算,做事毕竟要考虑时间投入产出比的。针对你的问题回答一下
1.外圈分类,PS吧也只是几个字了。
2.空白圈和缺刻是通过人为增加不要的值来实现的,像上面代码那样。
3.字体大小角度当然可以改,在theme里可以慢慢调,但是由于你给的数据只有那么短,也不知道具体怎么才合适你的,所以就提供个思路。(另外你说的重叠问题,注意ggplot作图导出的时候图片大小直接影响字体的重叠,所以你要自己再试试)
4.颜色填充在scale_fill_gradient这个函数里自己改,取色我是随意的,教你个好方法,打开QQ,用Ctrl+Alt+A开启截图模式,移动到你想要的颜色地方,小框就会显示那里的RGB值,再按住ctrl,可以看“#F77400”这种值,可以直接应用到代码里
二维码

扫码加我 拉你入群

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

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

2017-5-22 16:57:12
zerofung 发表于 2017-5-22 16:18
谢谢!但是还有一点小问题:
(1)那一圈代表疾病的分类,“A,B,C...”,怎么添加?
(2)代表年份的那个缺刻,角度好像有些歪呀?
(3)我在执行代码到前面几行,就出现了错误提示(见下面截图),不知为何?
(4)代码中有一些“%>%”是什么意思?

我把数据整理了一下,您再帮忙看看,好吗?

附件列表
www.jpg

原图尺寸 70.55 KB

www.jpg

ccc.rar

大小:3.45 KB

 马上下载

本附件包括:

  • ccc.csv

二维码

扫码加我 拉你入群

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

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

2017-5-22 17:55:08
tmdxyz 发表于 2017-5-22 16:57
谢谢!但是还有一点小问题:
(1)那一圈代表疾病的分类,“A,B,C...”,怎么添加?
(2)代表年份的那 ...
1,ABC用PS加比研究出代码怎么加更快;2,年份角度你可以仔细看看你给的lancet图也是歪的,他把空白放在第一,即十二点方向的右边,我放在最后,即十二点的左边,仅此而已;3,是我说的这个论坛美元符号显示问题,你把a和Val,a和Year中间加个美元符号就好。另外你的数据我改过列名,类型我用的英语Type,名称我用的Name,尽量避免在R里用中文。4,%>%是dplyr里面的管道操作符,有空可以研究一下dplyr,对R的学习很有帮助
二维码

扫码加我 拉你入群

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

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

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群