《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")

fbe01fd3ca8a431dd2dccf75693162750427348a

窄些的条形图:

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)。

ad42b4fabcfacec1833025f634e9987dee48b91b

.
更窄的簇状条形图可运行:
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的条形宽度。虽然上下两部分对应的条形宽度不同,但两图的条形中心是上下对齐的。
<div style="text-align: center"><img src="https://yqfile.alicdn.com/8e13ba95f460a64da6d8a340f29a4ba86c3ca651.png" width="" height="">
</div>
相关文章
|
6月前
ECharts 柱状图横轴(X轴)文字内容显示不全
ECharts 柱状图横轴(X轴)文字内容显示不全
130 0
|
5月前
使用分面展示不同组别的双 Y 轴图形
使用分面展示不同组别的双 Y 轴图形
35 0
|
5月前
Echarts柱状图x轴刻度间隔显示不全/x轴文字倾斜
Echarts柱状图x轴刻度间隔显示不全/x轴文字倾斜
74 0
|
10月前
|
定位技术
Echarts实战案例代码(39):地理坐标整体地图背景色渐变效果和字体随地图缩放的解决方案
Echarts实战案例代码(39):地理坐标整体地图背景色渐变效果和字体随地图缩放的解决方案
186 0
|
10月前
|
前端开发
Echarts柱状图y轴刻度标签图片和柱状渐变功能实现的解决方案
Echarts柱状图y轴刻度标签图片和柱状渐变功能实现的解决方案
82 0
|
10月前
|
数据可视化
数据可视化Echarts学习(2):柱图任务进度完成比例图属性练习柱图堆叠
数据可视化Echarts学习(2):柱图任务进度完成比例图属性练习柱图堆叠
65 0
|
数据可视化 JavaScript 前端开发
【视觉高级篇】26 # 如何绘制带宽度的曲线?
【视觉高级篇】26 # 如何绘制带宽度的曲线?
131 0
【视觉高级篇】26 # 如何绘制带宽度的曲线?
Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
Excel实现双Y轴折线图(四条折线中有两个主轴两个副轴)
R绘图 | 圆角堆叠柱状图(ggchicklet )
R绘图 | 圆角堆叠柱状图(ggchicklet )
238 0
R绘图 | 圆角堆叠柱状图(ggchicklet )
|
XML 移动开发 前端开发
【D3.js - v5.x】(2)绘图 | 比例尺 | 坐标轴 | 柱状图 | 过渡
【D3.js - v5.x】(2)绘图 | 比例尺 | 坐标轴 | 柱状图 | 过渡
327 0
【D3.js - v5.x】(2)绘图 | 比例尺 | 坐标轴 | 柱状图 | 过渡