柱状图的高度(y)有时表示数据集中的案例数,有时表示数据集中的值。

library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.1.2
#载入所有的数据集,以下两行是示例。
install.packages("gcookbook")
## Installing gcookbook [2.0] ...
##  OK [linked cache]
library(gcookbook) 
pg_mean <- pg_mean
#画图
ggplot(pg_mean,aes(x=group,y=weight))+geom_bar(stat = "identity")

aes中如果只给x,默认统计的是X里每个变量出现的次数。 如果给了x和y, 必须指定stat=“identity”,表示一个x对应一个y.即identity提取横坐标x对应的y值。 *stat=“count”(默认),表示一个X对应落到该X的样本数,即count提取横坐标x的频数。

当x是连续型变量的时候,绘图时默认会把每个变量都绘制出来,有时候会有空格

BOD <- BOD
ggplot(BOD,aes(Time, demand))+geom_bar(stat = "identity")

#去掉空格-把连续型变量变成因子型factor()
ggplot(BOD,aes(factor(Time), demand))+geom_bar(stat = "identity")

#修改填充fill和描边color
ggplot(pg_mean,aes(group,weight))+
  geom_bar(stat = "identity",fill="lightblue",color="black")

#不同组用不同颜色
cabbage_exp <- cabbage_exp #第一列和第二列很明显是分类变量。
ggplot(cabbage_exp,aes(Date,fill=Cultivar))+geom_bar(position = "dodge")

fill中的Cultivar是根据第一列的分组变量命名的,没有y,也没有指定stat,所以默认是count,表Date变量中每个元素出现的次数即频数。

position参数

指图像的微调,最常见的应用是在分组的柱形图中,因为分组的柱形图会产生组内堆积和不堆积两种主要效果。position常用参数值:stack和dodge.

  1. “identity”:不调整,组内前后重叠,上面一层把下面一层盖住了;identity最常用在折线图,不用在柱状图。
  2. “stack”(默认):堆积,上面的图在下面的图的上面,y轴上的数值是count和;
  3. “fill”:按比例堆积,y轴总的不变,两个图占的百分比去分掉y轴;
  4. “dodge”:分散,躲避。-两个图分开。

ColorBrewer配色

使用的是scale_color_brewer()-改变描边颜色, scale_fill_brewer()-改变填充颜色.

#scale_fill_brewer()修改颜色模式
ggplot(cabbage_exp,aes(Date, Weight, fill=Cultivar))+
  geom_bar(position = "dodge",stat = "identity", color = "black")+
  scale_fill_brewer(palette = "Pastel1")

#查看调色板
RColorBrewer::display.brewer.all()