下面这个简单的表,如何表达呢?研究了一下柱状图
、气泡图
和环图
skin<-read.csv("2019.csv")
#如果表头乱码了,可以自定义表头
names(skin)=c("类型","1-10岁","11-20岁","21-30岁","31-40岁","41-50岁","51-60岁",
"61-70岁","71-80岁")
首先要把宽数据转换为长数据,保留类型,按年龄分类
###数据转换
library(tidyr)
library(reshape2)
mydata<-melt(skin, #待转换的数据集名称
id.vars=c("类型"), #要保留的主字段
variable.name="年龄", #转换后的分类字段名称(维度)
value.name="人数" ) #转换后的度量值名称
长数据
绘制点图
library(ggplot2)
ggplot(mydata,aes(年龄,类型,color=年龄)) #按年龄划颜色,也可以按类型
+geom_point(aes(size=人数)) #按人数定义点的大小
+scale_size(breaks = c(1,50,100,300,600,900),range = c(4,16)) #自定义数据切割和把点搞大
+theme_bw()
+labs(x="",y="",title = "2019年色素痣样病变分类") #改标题
点2.jpg
绘制柱状图
ggplot(mydata, aes(类型,人数,fill=年龄))
+geom_bar(stat="identity")
+coord_flip()
+theme_bw()
+labs(x="",title = "2019年色素痣样病变分类")
按年龄填充
ggplot(mydata, aes(类型,人数,fill=类型))
+geom_bar(stat="identity")
+coord_flip()
+theme_bw()
+labs(x="",title = "2019年色素痣样病变分类")
按类型填充
ggplot(mydata, aes(类型,人数,fill=年龄))
+geom_bar(stat="identity")
+coord_flip()
+facet_grid(~年龄) ##按年龄分面
+theme_bw()
+labs(x="",title = "2019年色素痣样病变分类")
按年龄分面
ggplot(mydata, aes(类型,人数,fill=年龄))+geom_bar(stat="identity")+coord_flip()+facet_wrap(~年龄,ncol = 4)+theme_bw()+labs(x="",title = "2019年色素痣样病变分类")
image.png
ggplot(mydata, aes(类型,人数,fill=类型))+geom_bar(stat="identity")+coord_flip()+facet_wrap(~年龄,ncol = 4)+theme_bw()+labs(x="",title = "2019年色素痣样病变分类")
image.png
绘制柱状图
ggplot(mydata, aes(x="",人数, fill=类型))+ geom_bar(width = 0.5, stat = "identity", position = "fill")+ coord_polar("y") + labs(x = '', y = '', title = '2019年色素痣样病变分类') + theme(axis.text = element_blank()) + theme(axis.ticks = element_blank())+ facet_wrap(~年龄,ncol=4)
image.png
网友评论