相关疑难解决方法(0)

ggplot2 - 在剧情之外注释

我想将样本大小值与绘图上的点相关联.我可以geom_text用来定位点附近的数字,但这很麻烦.将它们沿着图的外边缘排列会更加清晰.

例如,我有:

df=data.frame(y=c("cat1","cat2","cat3"),x=c(12,10,14),n=c(5,15,20))

ggplot(df,aes(x=x,y=y,label=n))+geom_point()+geom_text(size=8,hjust=-0.5)
Run Code Online (Sandbox Code Playgroud)

这产生了这个情节: 在此输入图像描述

我更喜欢这样的东西: 在此输入图像描述

我知道我可以创建第二个图并使用grid.arrange(这篇文章),但确定textGrobs与y轴对齐的间距会很繁琐.有更简单的方法吗?谢谢!

annotations r ggplot2

62
推荐指数
3
解决办法
6万
查看次数

在面板外添加ggplot注释?还是两个头衔?

我正在使用ggplot2animation包制作一个动画情节.动画的每一帧都包含一个包含两位信息的地图,我想将其用作标题/标签.

在我看来,有两种方法可以做到这一点.

  1. 调整绘图边距,geom_text使其没有标题边距,然后用于在图上添加"标题"作为文本注释.
  2. 添加第二个标题.(我尝试用空格填充单个标题来模拟两个标题,但由于字距调整,这会因重复绘图而中断.)

第一种方法并不理想,因为我需要为每个帧使用相同的绘图限制,我从以lat/long测量的地图范围中获得这些.确定标签所需的额外高度会导致丑陋的单位混合.因此,添加第二个标题在语义上对我来说似乎更明智,但在玩完之后annotation_custom,我似乎无法弄明白.

这是我所追求的模型,展示了两个"标题",每个标题都有不同的对齐方式,以确保它们在重复的帧中保持不变.我打开了情节边框来帮助想象这个位置.在最终的情节中,这将被删除.

ggplot的模拟有两个标题

谢谢你的帮助!

编辑

感谢Baptiste的签名发布.我不得不使用稍微不同的参数来(a)获得正确的定位和(b)对两个标题使用相同的字体.这是一个例子:

require(gtable)
require(ggplot2)

## Create the basic plot
df <- data.frame(x=1:10, y=1:10)
gg <- ggplot(df, aes(x,y)) + geom_point() + labs(title="Left") +
    theme(plot.title=element_text(hjust=0))

## Get the title style from the original plot
g <- ggplotGrob(gg)
title_style <- g$grobs[[8]]$gp

## Add the second title and plot
g2 <- gtable_add_grob(g, textGrob("Right", x=1, hjust=1, gp=title_style),
                      t=2, l=4, b=2, r=4, name="right-title")
grid.draw(g2)
Run Code Online (Sandbox Code Playgroud)

这是结果:

ggplot图有两个标题

r ggplot2

7
推荐指数
1
解决办法
1万
查看次数

将文本添加到 ggplot 中的轴标签

我从下表中绘制了一个图表。

        BoatPhs      fit        se    lower    upper
1         Before 3.685875 0.3287521 3.038621 4.333130
2   After0-20NTA 3.317189 0.6254079 2.085872 4.548506
3   After0-20TAA 5.579384 0.5696270 4.457890 6.700878
4   After0-20TAP 3.932360 0.4304098 3.084960 4.779760
5  After20-40NTA 4.522714 0.7771793 2.992586 6.052842
6  After20-40TAA 4.505207 0.5500699 3.422217 5.588196
7  After20-40TAP 3.602183 0.3880538 2.838174 4.366192
8    ApproachNTA 4.039599 0.5688482 2.919638 5.159560
9    ApproachTAA 4.421112 0.5176408 3.401969 5.440255
10   ApproachTAP 4.497809 0.3978328 3.714547 5.281071
Run Code Online (Sandbox Code Playgroud)

船相是 x 轴,拟合绘制在 y 轴上。目前,我的轴刻度为 Before、ApproachNTA、ApproachTAA、ApproachTAP、After0-20NTA 等。

我最初将这些标签旋转了 90 度,以便更好地查看它们,但不喜欢它的外观。我目前已重命名标签(使用下面的代码),以便现在在轴刻度上显示的是 x 轴上的“在 NTA TAA …

axis r labels ggplot2

3
推荐指数
1
解决办法
5076
查看次数

标签 统计

ggplot2 ×3

r ×3

annotations ×1

axis ×1

labels ×1