ggplot:向每个条添加水平线+重新定位刻度标签

丹尼尔·加德纳(Daniel Gardiner)

使用ggplot时,我在格式化的两个方面遇到了一些困难。

首先,我希望能够为每个条形添加水平线,以使条形如下所示:

img
(来源:eurosurveillance.org

第二,我想更改刻度标签的位置,使其落在每个小节之间,以便标签看起来像这样

img

到目前为止,我有:

values=runif(50,0,20)
sex=rep(c("Male","Female"),25)

df=data.frame(values,sex)

label=c("","0-5","5-10","10-15","15-20")
sep=seq(0,20,5)

ggplot(df, aes(x = values,fill=sex))+geom_bar(binwidth=5,colour="black")+
scale_x_discrete(breaks=sep,labels=label,limits=sep)
格雷戈尔·托马斯(Gregor Thomas)

漂亮的描述和可复制的示例!

如果您的x轴是一个因子,则以条形居中的轴标签为默认设置。由于您知道binwidth,因此只需使用cut即可为您进行分箱:

df$cutval <- cut(values, breaks = seq(0, 20, by = 5))
ggplot(df, aes(x = cutval, fill = sex)) +
    geom_bar(colour = "black", width = 1)

要获得与示例中完全相同的标签,可以进行一些正则表达式编辑:

library(stringr)
# delete open parens and closing brackets
levels(df$cutval) <- str_replace_all(levels(df$cutval), "\\(|\\]", "")
# replace comma with tilde
levels(df$cutval) <- str_replace_all(levels(df$cutval), "\\,", "~")

屈服

> levels(df$cutval)
[1] "0~5"   "5~10"  "10~15" "15~20"

在此处输入图片说明

要获取这些框(所有这些水平线),您可以使用分组变量(我们需要先重新排序)。不能说我喜欢它的外观,但这里是:

df <- df[order(df$cutval, df$sex), ]
df$id <- 1:nrow(df)
ggplot(df, aes(x = cutval, fill=sex, group = id)) +
    geom_bar(colour = "black", width = 1)

在此处输入图片说明

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

重新定位颜色条

来自分类Dev

R中的条形图标签:在绘图区域下方添加水平线

来自分类Dev

向每个<li>附加水平线

来自分类Dev

在C#中向图表添加水平线

来自分类Dev

Python绘图-向图例添加水平线

来自分类Dev

在ggplot2中具有自由y轴的face_wrapped图中重新定位轴标签

来自分类Dev

CSS - 定位一条水平线

来自分类Dev

进度条中的文本需要重新定位

来自分类Dev

向R中的ggplot2中的堆叠条形图添加水平线,并在图例中显示

来自分类Dev

在元素之间添加水平线

来自分类Dev

角图添加水平线

来自分类Dev

Migradoc添加水平线

来自分类Dev

在元素之间添加水平线

来自分类Dev

ggplot:将ylab旋转并重新定位到中间

来自分类Dev

如何在ggplot2条形图中的标签上添加水平减淡?

来自分类Dev

添加不重新定位页面的关闭功能

来自分类Dev

如何在Jasper Report中向条形图添加水平线?

来自分类Dev

向d3图形添加水平线会显示错误的值

来自分类Dev

Python Plotly:向具有多个子图的散点图添加水平线

来自分类Dev

在magento网站的每个菜单文本之间添加水平线

来自分类Dev

如何使用ggplot在条形图上方添加水平线?

来自分类Dev

如何添加水平线显示ggplot2中所有组的均值?

来自分类Dev

单击按钮时如何在 URL 中添加值而不重新加载/重新定位页面

来自分类Dev

如何在某些div下方添加水平线?

来自分类Dev

添加水平线,按因子分组

来自分类Dev

在android小部件中添加水平线

来自分类Dev

TextBlock.Inlines-添加水平线

来自分类Dev

Flutter ListWheelScrollView,如何添加水平线

来自分类Dev

在android小部件中添加水平线

Related 相关文章

热门标签

归档