楼主: stevekkk
5068 0

[程序分享] R语言使用ggplot2包绘制南丁格尔玫瑰图 [推广有奖]

  • 0关注
  • 0粉丝

本科生

88%

还不是VIP/贵宾

-

威望
0
论坛币
12 个
通用积分
119.3551
学术水平
6 点
热心指数
6 点
信用等级
6 点
经验
5991 点
帖子
38
精华
0
在线时间
146 小时
注册时间
2013-8-10
最后登录
2023-12-28

相似文件 换一批

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

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

经管之家联合CDA

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

感谢您参与论坛问题回答

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

+2 论坛币
用ggplot2绘制南丁格尔玫瑰图,示例代码如下:
library(ggplot2)
mydata<-data.frame(a=c("apple","byte","cut","d","e","f","g"),b=c(5,6,7,8,4,5,6))
myAngle=seq(0,360,length.out = 7)
ggplot(mydata,aes(x=a,y=b,fill=factor(b)))+
geom_bar(width=1,stat = "identity",colour="white",fill="#F8766D")+
geom_text(aes(y=b-8,label=b),color="white")+
coord_polar(theta = "x",start=0)+
ylim(c(0,10))+
theme_minimal()+
theme(axis.text.x=element_text(size=13,colour="black",angle=myAngle))



示例效果:

1.jpg



ggplot2的基本原理:


ggplot()+geom_


前者是基础函数,用于加载数据和绘制基础图形;后者是图层工具,在基础图形上加载效果,可以加载多个图层效果,每一个+,叠加一个图层效果。




代码详解:


mydata<-data.frame(a=c("apple","byte","cut","d","e","f","g"),b=c(5,6,7,8,4,5,6))
#定义你的数据,类型是2个向量,代表x和y轴2个方向上的取值

myAngle=seq(0,360,length.out = 7)
#定义y轴坐标上的文字旋转角度,自己调整

ggplot(mydata,aes(x=a,y=b,fill=factor(b)))+
#绘图函数,ab两个向量分别带入xy轴,以b向量为表现因子

geom_bar(width=1,stat = "identity",colour="white",fill="#F8766D")+
#定义条形图层样式,width为1个条形所占的宽度;colour为条形间间隔的颜色;fill为条形中填充的颜色,自己调整

geom_text(aes(y=b-8,label=b),color="white")+
#定义y轴标签层样式

coord_polar(theta = "x",start=0)+
#将直角坐标转换成极坐标

ylim(c(0,10))+
#定义极坐标的取值范围

theme_minimal()+
#定义主题风格,除开minimal外,还有:theme_bw, theme_gray,  theme_light,  theme_test,  theme_classic. 可以一一尝试自己体会

theme(axis.text.x=element_text(size=13,colour="black",angle=myAngle))
#定义x轴文字层样式



南丁格尔玫瑰图适合什么情况下用?

玫瑰图由护士南丁格尔创造,通过强烈的对比,给人留下深刻的印象。原始目标是让国家高层对占地医院进行重视,因为良好的战地医院,能将战士死亡率从42%降到2.2%。

该图适用于需要强烈对比的数据,以及在x轴数据过多无法展开而用极坐标卷曲后展示的情况。

由于y轴数值为圆的半径,而圆面积为2倍指数,造成扇面的指数级别放大,夸大了数据的情况,这也是为什么南丁格尔图适合用于对比。但请注意,当对比的数据数值差异较大时,反而不适合使用,自己体会。

该图渲染效果大于实用效果,请慎用,以免汇报时给人华而不实的印象。




实例:

2.jpg



实例进一步美化处理

0.png


在此遇到了玫瑰图的一个问题:数值差距过大时不宜使用



解决思路:给数据开方。由于玫瑰图主要用于展示,而不是精确显示数据,开方后扇形面积降了一级,观感更合适了。








实例数据开方后:



3.png

对比前图,自己体会。




二维码

扫码加我 拉你入群

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

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

关键词:ggplot2 gplot 南丁格尔 plot R语言 ggplot2 南丁格尔玫瑰园图

已有 3 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
dxystata + 100 + 10 鼓励积极发帖讨论
cheetahfly + 30 观点有启发
Sunknownay + 3 + 3 + 3 鼓励积极发帖讨论

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

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

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

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

GMT+8, 2024-11-8 19:32