《R数据可视化手册》一3.6 调整条形宽度和条形间距

简介:

本节书摘来自异步社区《R数据可视化手册》一书中的第3章,第3.6节,作者 【美】Winston Chang,更多章节内容可以访问云栖社区“异步社区”公众号查看

3.6 调整条形宽度和条形间距

问题
如何调整条形图的条形宽度和条形间距?

方法
通过设定geom_bar()函数的参数width可以使条形变得更宽或者更窄。该参数的默认值为0.9;更大的值将使绘制的条形更宽,反之则是更窄(见图3-13)。

例如,标准宽度的条形图如下:

library(gcookbook) #为了使用数据

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


b1d9e56af26706701e2e05a4f87db3f16c50cd7d

窄些的条形图:

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

宽些的条形图(条形图的最大宽度为1):

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

簇状条形图默认组内的条形间距为0。如果希望增加组内条形的间距,则可以通过将width设定得小一些,并令position_dodge的取值大于width(见图3-14)。


ecdc1820eaf50521254fb3b73aa27fc477e52f25

更窄的簇状条形图可运行:

ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
  geom_bar(stat="identity", width=0.5, position="dodge")

添加条形组距可运行:

ggplot(cabbage_exp, aes(x=Date, y=Weight, fill=Cultivar)) +
  geom_bar(stat="identity", width=0.5, position=position_dodge(0.7))

第一幅图的绘图命令中用到了参数position="dodge",第二幅图的绘图命令中用到的参数是position=position_dodge()。这是因为position="dodge"是参数默认为0.9的position_dodge()的简写。当我们需要单独指定该参数的时候,必须输入完整的命令。

讨论
width参数的默认值是0.9,position_dodge函数中width参数的默认值也是0.9。更确切地说,position_dodge函数和geom_bar()函数中的width参数的取值是一样的。

下面的四个命令是等价的:

geom_bar(position="dodge")
geom_bar(width=0.9, position=position_dodge())
geom_bar(position=position_dodge(0.9))
geom_bar(width=0.9, position=position_dodge(width=0.9))

条形图中,条形中心对应的x轴坐标分别是1、2、3等,但通常我们不会利用上这些数值。当用户运行命令geom_bar(width=0.9)时,每组条形将在x轴上占据0.9个单位宽度。运行命令position_dodge(width=0.9)时,ggplot2会自动调整条形位置,以使每个条形的中心恰好位于当每组条形宽度为0.9,且组内条形紧贴在一起时的位置,如图3-15所示。图中上下两部分都对应position_dodge(width=0.9),只是上图对应于0.9的条形宽度,下图对应于0.2的条形宽度。虽然上下两部分对应的条形宽度不同,但两图的条形中心是上下对齐的。


595b35d347f32b45a21400b134b88094a19372ac

如果你将整幅图形进行伸缩,条形图也会依照相应的比例进行伸缩。要了解图形是怎样变化的,只需改变图形所在窗口的大小,然后,观察图形的变化即可。更多关于在输出图形文件时控制图片大小的内容可参见第14章。
相关文章
|
数据可视化
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
R语言绘图教程丨Nature论文都在用的多组比较箱线图,自动计算显著性并标注,附带误差线
|
人工智能 供应链 数据可视化
低代码开发平台与零代码平台的区别?国内主流平台介绍与深度对比
本文深入解析低代码与零代码开发平台的技术特性与适用场景,盘点Zoho Creator、织信、OutSystems、简道云、钉钉宜搭等国内主流平台,对比其功能优势与典型案例,为企业数字化转型选型提供参考。
829 1
EndNoteX9完整详细安装教程
EndNoteX9完整详细安装教程
4319 154
EndNoteX9完整详细安装教程
|
算法 应用服务中间件 数据库
这或许是我写的最全的BLAST教程
Basic local alignment search tool (BLAST) 包括:blastn, blastp, blastx, tblastn, tblastx等. 使用conda安装即可。
5940 0
【Matlab 2019b】Matlab在figure中如何把横坐标或者纵坐标单位转换为10的几次方
本文提供了在Matlab中如何改变图形坐标轴单位的方法,举例说明了如何将横轴刻度标签设置为特定的年份,并调整刻度取值以匹配自变量的变化。
3006 1
|
前端开发 数据可视化
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
R语言广义线性混合模型(GLMM)bootstrap预测置信区间可视化
R 问题|如何合并图形并共享同一个图例?
R 问题|如何合并图形并共享同一个图例?
1124 0
复现sci顶刊中的画中画(局部细节放大)
复现sci顶刊中的画中画(局部细节放大)
2519 0
|
人工智能 数据可视化
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
跟SCI学umap图| ggplot2 绘制umap图,坐标位置 ,颜色 ,大小还不是你说了算
2658 1
|
数据可视化 数据挖掘
R实战 | 置换多元方差分析(以PCoA的PERMANOVA分析为例)
R实战 | 置换多元方差分析(以PCoA的PERMANOVA分析为例)
2543 0