diamonds
数据集中按照cut
变量分组的各种钻石的总数量。
ggplot(data = diamonds) +
geom_bar(mapping = aes(x = cut))
条形图显示,高质量切割钻石的数量要比低质量切割钻石的数量多:条形图的x轴显示的是cut,这是diamonds数据集中的一个变量。y轴显示的count,但count不是diamonds中的变量!
有一些图形可以根据计算出的新数据绘制图形:
条形图、直方图和频率多边形图可以对数据进行分箱,然后绘制出分箱数量和落在每个分箱的数据点的数量。
平滑曲线会为数据拟合一个模型,然后绘制出模型预测值。
箱线图可以计算出数据分布的多种摘要统计量,并显示一个特殊形式的箱体。
绘图时用来计算新数据的算法成为统计变换(statistical transformation,stat)。
通过查看stat参数的默认值,可以知道集合对象函数施用了哪种统计变换。
通常来说,几何对象函数和统计变换函数可以互相使用。例如,可以使用stat_count()替换上述代码中的geom_bar()来重新生成条形图:
ggplot(data = diamonds) +
stat_count(mapping = aes(x = cut))
可以这样做的原因是:
每个几何对象函数都有一个默认统计变换;
每个统计变换函数都有一个默认几何对象。
想要显示使用摸偶中统计变换的3个原因如下:
覆盖默认的统计变化
library(tibble)
demo <- tribble(
~a, ~b,
"bar_1", 20,
"bar_2", 30,
"bar_3", 40,
)
ggplot(data = demo) +
geom_bar(
mapping = aes(x = a, y = b), stat = "identity"
)
在上述代码中,将geom_bar()
函数的统计变换从计数(默认值)修改为标识,此时,y轴变量的初始值被映射为条形的高度。
想要覆盖从统计变换生成的变量到图形属性的默认映射。
#..prop..是ggplot2中的一个内建函数,用于计算每个组的占比(即每个类别的计数除以总数)
# group = 1,指定了分组变量为1,所有的条形被归为同一组,因此,不会对条形进行分组显示。
ggplot(data = diamonds) +
geom_bar(
mapping = aes(
x = cut, y = ..prop.., group = 1
)
)
想要在代码中强调统计变换
没有评论:
发表评论