“我最大的快乐,是你的快乐与我有关”
接着上一次的更吧
需要今天配套文件的自取
下面我们需要做的是一个面积图
案例的数据在上面的百度云分享中有
需要自取
library(ggplot2)
sunspotyear = read.table("area_plot.txt",sep = "\t",header = T)
ggplot(sunspotyear,aes(Year,Sunspots)) + geom_area()
# change fill color and alpha
ggplot(sunspotyear,aes(Year,Sunspots)) + geom_area(colour = "black",fill = "blue",alpha = .2)
然后我们看一下数据内有分组情况下的作图
library(ggplot2)
#read in data
data = read.table("area_plot2.txt",sep = "\t",header = T)
levels(data$AgeGroup)
#level the factor
data$AgeGroup = factor(as.character(data$AgeGroup),levels = c("<5","5-14","15-24","25-34","35-44","45-54","55-64",">64"))
#draw area plot, amazing things will happen.
ggplot(data,aes(Year,Thousands,fill = AgeGroup)) +geom_area()
接下来我们来画一个饼图吧
在R语言的自带base作图系统中,有一个内置的绘制饼图的函数,叫做pie()函数
它的参数非常简单,需要给出第一个参数就是:数值,也就是我们这个数据中的Value一列
第二个参数就是:数值的标签,也就是我们数据当中的Group一列
#read in data
data = read.table("pie_plot.txt", sep="\t", header=T)
data
#draw pie chart using function "pie"
pie(data$Value, labels=data$Group)
如果我们想要调整图形的大小,可以使用radius参数
pie(data$Value, labels=data$Group, radius=0.4)
当我们定义clockwise=T时,画出来的图形是这样的
从12点钟方向开始顺时针排布
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T)
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90)
density表示在整个圆形的饼图中填充的线条数
density越高,填充的线条数越多
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=20)
在R当中,自带了几种配置好的颜色编码方式
比如彩虹色rainbow()函数,热度颜色heat.colors(),地形配色terrain.colors()以及cm.colors()、topo.colors()等
这些函数能够给我们提供很多种不同的配色方案,我们只需告诉他们我想要多少个颜色就行了
比如,我们这里面有八个分组,我想要从彩虹色中提取八个颜色出来
就可以直接使用rainbow.colors(8)即可
把这个提取出来的8个颜色赋值给col参数,就可以绘制出彩虹色的饼图
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=20, col=rainbow(8))
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=20, col=rainbow(8), border="black")
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=NULL, col=rainbow(8), border="black", lty=2)
pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=NULL, col=rainbow(8), border="black", lty=2, main="My First Pie Chart using R")
下面我们来做一个条形图
# 读入数据
data = read.table("barplot.txt",header=T)
# 绘制条形图
barplot(data[,2])
barplot(data[,2],names.arg = data[,1])
par(family='STKaiti')
barplot(data[,2],names.arg = data[,1],main = "条形图",xlab = "分组",ylab = "统计量")
barplot(data[,2],names.arg = data[,1],main="条形图",xlab="分组",ylab="统计量",col = "blue")
barplot(data[,2],names.arg = data[,1],main = "条形图",xlab = "分组",ylab = "统计量",col = c("grey","red","blue","orange","green"))
如果遇到多组情况
可以使用堆积柱状图
# 多种分组的柱状图
# 堆积柱状图
# 转换数据
data2 = t(data[,c(2,3)])
# 绘制柱状图
barplot(as.matrix(data2))
然后我们将图片进行调整
barplot(as.matrix(data2),names.arg =data[,1], main = "条形图",xlab = "分组",ylab = "统计量",col = c("blue","red"),legend = c("Low Dose","High Dose"),ylim = c(0,50))
box() # 边框
# 非堆积柱状图
barplot(as.matrix(data2),names.arg = data[,1],main = "条形图",xlab = "分组",ylab = "统计量",col = c("blue","red"),legend = c("High Dose","Low Dose"),ylim = c(0,50),beside = T)
box()
# 水平柱状图
par(las = 2)
barplot(as.matrix(data2),names.arg = data[,1],main = "条形图",xlab = "分组",ylab = "统计量",col = c("blue","red"),legend = c("Low Dose","High Dose"),xlim = c(0,50),horiz = T,space = 0.5)
box()
那么,问题来了
有小伙伴知道水平柱状图的非堆积形式该怎么画吗?
如果知道的话欢迎后台联系
有奖竞答
今天就先更到这里吧
更的匆忙,但(所)是(以)
很(凑)细(字)致(数)!