本章内容
条形图、箱线图和点图
饼图和扇形图
直方图与核密度图
6.1条形图(Simple Bar Plot简单条形图)(Horizontal Bar Plot水平条形图)
条形图通过垂直的或水平的条形展示了类别型变量的分布(频数)。
使用barplot()函数:barplot(height)。其中的height是一个向量或一个矩阵。
01简单条形图(height 是一个向量时)
示例如下:
>install.packages("vcd")#安装vcd包
> library(vcd)#载入包
> counts
> counts#输出结果
None Some Marked
42 14 28
>
> barplot(counts,
+ main = "Simple Bar Plot",
+ xlab = "Improvement",ylab = "Frequency")#绘制简单条形图
简单条形图
> barplot(counts,
+ main = "Horizontal Bar Plot",
+ xlab = "Frequency",ylab = "Improvement", col = c("red","yellow","green"),
+ horiz = TRUE)#绘制水平条形图,horiz = TRUE表示水平绘制,使用col添加颜色
水平条形图添加颜色后
02堆砌条形图和分组条形图(height 是一个矩阵时)
> library(vcd)
> counts
> counts#输出结果
Placebo Treated
None 29 13
Some 7 7
Marked 7 21
>
> barplot(counts,
+ main = "Stacked Bar Plot",
+ xlab = "Treatment",ylab = "Frequency",
+ col = c("red","yellow","green"),
+ legend=rownames(counts))#绘制堆砌条形图
堆砌条形图
> barplot(counts,
+ main = "Grouped Bar Plot",
+ xlab = "Treatment",ylab = "Frequency",
+ col = c("red","yellow","green"),
+ legend=rownames(counts),beside = TRUE)#绘制分组条形图
分组条形图
参数legend.text为图例提供了各条形的标签(仅在height为一个矩阵时有用)。
beside=FALSE(默认值),若beside=TRUE,则矩阵中的每一列都表示一个分组,各列中的值将并列而不是堆砌。
由于标签和图形重叠,影响美观和观测,所以回看第三章相关内容,改进如下:
legend("topright",legend=c("None","Some","Marked"),fill=c("red","yellow","green"))
但是效果还不是很理想。
03均值条形图
条形图并不一定要基于计数数据或频率数据。你可以使用数据整合函数并将结果传递给barplot() 函数,来创建表示均值、中位数、标准差等的条形图。
> options(digits = 3)
> states
> means
> means
Group.1 x
1 Northeast 1.00
2 South 1.74
3 North Central 0.70
4 West 1.02
>
> means
> mea