r语言中barplot怎么不显示_R语言实战 第4话

“我最大的快乐,是你的快乐与我有关”

dcfb1cdffc6fd36daf07e2016dc5f63a.png

a9a9fc2681cc08fdcded36b363155f92.gif

ec049523e1cf31d3f8f2a3157a3e33a3.gif

接着上一次的更吧

需要今天配套文件的自取04d7fe7186ebd9fcd82387db21b511d1.png

736bc010aa49d2af4dc41850467e4163.png

下面我们需要做的是一个面积图

案例的数据在上面的百度云分享中有

需要自取c81caa37703e7eb4b84669cd3c16c176.png

library(ggplot2)

sunspotyear = read.table("area_plot.txt",sep = "\t",header = T)

ggplot(sunspotyear,aes(Year,Sunspots)) + geom_area()

d2a94bbe0bd43f2b577041370b769f68.png

# change fill color and alpha

ggplot(sunspotyear,aes(Year,Sunspots)) + geom_area(colour = "black",fill = "blue",alpha = .2)

c7c5872aa72dfc57862e730c15005d66.png

然后我们看一下数据内有分组情况下的作图

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()

c22ae08edf13adb1753473fbe75c1b70.png

接下来我们来画一个饼图吧

在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)

ce165e2ecc5918855ecdbc5ffca5d42b.png

如果我们想要调整图形的大小,可以使用radius参数

pie(data$Value, labels=data$Group, radius=0.4)

c7731b67cf98d5ada39b22cf0d0b2e27.png

当我们定义clockwise=T时,画出来的图形是这样的

从12点钟方向开始顺时针排布

pie(data$Value, labels=data$Group, radius=0.8, clockwise=T)

eb1a40aeefa64c58ebd2693f497250a2.png

pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90)

0fd488930d37bb98545d936535d39797.png

density表示在整个圆形的饼图中填充的线条数

density越高,填充的线条数越多

pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=20)

63531f79b38dbbced0cbef34bd358c4c.png

在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))

7242cc252c54ad4f3c54f0a224143a9a.png

pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=20, col=rainbow(8), border="black")

362d4538203f6af4c7a0353f6ee74efd.png

pie(data$Value, labels=data$Group, radius=0.8, clockwise=T, init.angle=90, density=NULL, col=rainbow(8), border="black", lty=2)

eaa4abb72309ce9e6c662a1ae245c52f.png

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")

af7358149cf8304bc3a934917ee5307e.png

下面我们来做一个条形图

# 读入数据

data = read.table("barplot.txt",header=T)

# 绘制条形图

barplot(data[,2])

5a67e95f8bd3cf6a01bf025d1acd9191.png

barplot(data[,2],names.arg = data[,1])

8e941759aa3a9b33805cd28bd0246e04.png

par(family='STKaiti')

barplot(data[,2],names.arg = data[,1],main = "条形图",xlab = "分组",ylab = "统计量")

b86d75e870863ad09cc38289260af30e.png

barplot(data[,2],names.arg = data[,1],main="条形图",xlab="分组",ylab="统计量",col = "blue")

22b5e5f3a0c5514d40b8a4d83b181b0c.png

barplot(data[,2],names.arg = data[,1],main = "条形图",xlab = "分组",ylab = "统计量",col = c("grey","red","blue","orange","green"))

ae7feb06e5e873285acf1b7bf205aa20.png

如果遇到多组情况

可以使用堆积柱状图

# 多种分组的柱状图

# 堆积柱状图

# 转换数据

data2 = t(data[,c(2,3)])

# 绘制柱状图

barplot(as.matrix(data2))

ed5c715a56ba0ee3456bb2f097003294.png

然后我们将图片进行调整

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))

143d0da81a9ef6a69c6a3ca06d932d3e.png

box() # 边框

508e6df6d6203c5d19b1f71fbfa242ef.png

# 非堆积柱状图

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()

621f247e0cdbab7e7c3ebc392647919c.png

# 水平柱状图

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()

b2ff4539c9c195c0a1891a290e7b7dad.png

那么,问题来了e9c03463e209bd88b64f5a5f1708b7f6.png

有小伙伴知道水平柱状图的非堆积形式该怎么画吗?

如果知道的话欢迎后台联系1db2e9c669a7ddfa3ab82b35074c0bd6.png

有奖竞答28c1cec7802a14b910aaa2e18d46cb2d.png

今天就先更到这里吧

更的匆忙,但(所)是(以)   

很(凑)细(字)致(数)!

f6df13307f22c66a42306197075769d9.gif

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值