R语言绘图——条形图柱状图

Python045

R语言绘图——条形图柱状图,第1张

直方图又称柱状图/条形图,用来展示连续数据分布的常用工具,用来估计数据的概率分布。

使用格式:hist(x,breaks=n,main="name",labels=FASLE,col="blue",border="red",freq=TRUE)

x 向量,直方图的数据

breaks 描直方图的断点,例如breaks=20表示画出20个柱子;

labels 逻辑变量,TRUE标出频数

main 标题

col 颜色

border外框颜色

freq 逻辑变量,TRUE为数据频数,默认为TRUE;FALSE则为密度

我们可以用lines画出数据的密度曲线

还可以画正态分布的密度曲线

使用格式 ggplot(data,aes(x=class))+geom_bar()

x 绘制的数据

或者 ggplot(data,aes(y=class))+geom_bar(),则类型分布在y轴

当想看在该因素中其他因素的情况,可以利用fill进行绘制,得出叠堆条形图

横向的柱状

大多数时候我们想比较多个组直接某些因素的情况,例如有时候我们要画几个样本中各个细胞比例的情况

这是我们可以画堆叠条形图

此时不好比较,我们可以把同类型细胞放在一块比较,即横坐标变为细胞类型

在实验过程中可以采用容易分析的形式进行比较

以上是基本绘制的参数,此外还有美化的一些参数

labs 横纵坐标轴的名称

ggttitle 标题名称

geom_bar(width= )设置条形大小,默认情况下,设置为数据分辨率的90%。

theme_bw() 改变背景颜色

scale_fill_manual 自定义颜色

更多参数见 R语言绘图——数据可视化ggplot2 介绍和主要的参数

R中的画地图的方法不外乎两种,一种是利用GIS方面的数据,在R中画出来,另一种是直接从谷歌地图等地方拿来主义。

先说第一种,最早应该是从maps包开始的,这个包里没记错的话应该用map函数为主,

>map("world", fill = TRUE, col = rainbow(200),ylim = c(-90, 90), mar = c(0, 2, 0, 0))

>title("worldmap")

这种用法大家应该很熟了,比较可惜的是里面的数据是在是太少了,连张中国地图都画不了,好在后来有了mapdata等一系列的包,CRAN上maps包后面那一串全是。

具体的内容看一下文档就ok啦,可是问题又来了,R包里的数据总是不够用的,而且还不新,这个时候就可以考虑sp包了,包里的spplot函数可以用来画地图

可以用内置的graphic包来画,就是plot()和curve()

也可以用ggplot2来画,后者更灵活。

graphic

# 先生成一组随机数

x <- rnorm(2000)

# 画频率直方图, 分30个bin

hist(x, freq = F, breaks = 30) 

# 再画概率分布曲线

lines(density(x, bw=.5), col="red", lwd=2)

2. ggplot2

# 准备工作, 把x设成一个数据集

library(ggplot2)

data <- data.frame(x = x)

# 生成底层和直方图,概率线的图层

p <- ggplot(data, aes(x = x, y = ..density..))

p <- p + geom_histogram(fill = "navy")

p <- p + geom_density(colour = "green")

p

画出来风格不太一样,看你口味了