R可视化和ggplot2

《R数据可视化手册》学习笔记3---条形图(1)简单条形图

2023-09-10  本文已影响0人  RSP小白之路

写在前面。

条形图一般用来展示不同分类下(x轴)某个数值型变量的取值(y轴)。注意,条形的高度,有时是变量的频数,有时是变量的取值本身,需要注意区分。

条形图

我没有按照书中的章节顺序,而是根据条形高度映射数据类型图形位置图形元素进行了分类整合,使脉络更清晰,知识点更集中

同时随着ggplot2包的更新,书中的一些用法也已经不适用了,因此会做一些更正。

所使用的一些示例数据需要安装加载包gcookbook,同时也需要加载ggplot2

if(!require(gcookbook) ) install.packages("gcookbook")
library(gcookbook)
library(ggplot2)

另外,ggplot2绘图的常用基本语句需要知道:

ggplot(data = , aes(x= , y = ) ) + geom_xxxx() + ...

1. 条形高度

如上文所说,条形的高度有时映射的是变量的取值本身,有时是变量的频数统计值。

1.1 简单条形图

数据中,一个变量表示在x轴的位置,另一个变量表示每个条形的高度,那么映射的也就是变量取值本身。

我们使用数据pg_mean作为示例数据。

> str(pg_mean)
'data.frame':   3 obs. of  2 variables:
 $ group : Factor w/ 3 levels "ctrl","trt1",..: 1 2 3
 $ weight: num  5.03 4.66 5.53

基于此,我们使用ggplot()函数和geom_bar(stat = "identity")

ggplot(data = pg_mean, aes(x= group, y =weight)) + geom_bar(stat = "identity")

[图片上传失败...(image-aacbac-1694394475903)]


上例子,x轴映射的变量离散型变量,如果是连续型变量,会在最大最小值之间取所有可能值作为x轴映射值

BOD数据集作为示例数据集:

> BOD
  Time demand
1    1    8.3
2    2   10.3
3    3   19.0
4    4   16.0
5    5   15.6
6    7   19.8

绘图如下:

ggplot(data = BOD, aes(x= Time, y =demand)) + geom_bar(stat = "identity")

[图片上传失败...(image-cd9d89-1694394475903)]


可以使用factor函数将x取值转换为离散型数据

ggplot(data = BOD, aes(x= factor(Time), y =demand)) + geom_bar(stat = "identity")

[图片上传失败...(image-32b0ee-1694394475903)]


可以看到,x转换前后图形是不同的。

上一篇下一篇

猜你喜欢

热点阅读