例如,考虑使用数据mtcars
和函数coord_flip
的图
library(ggplot2)
library(Hmisc)
ggplot(mtcars,aes(x=gear,y=cyl)) + stat_summary(aes(color=as.factor(rep(1:2,16))),
fun.data=mean_cl_boot, position=position_dodge(0.4)) + coord_flip()
误差线在图上是水平的,但在图例中是垂直的,这一事实让我很烦恼:)我如何旋转这些符号?
5条答案
按热度按时间2hh7jdfx1#
调整图例键
然后密谋
jexiocij2#
我没有想出一个在正常的ggplot2工作流程中工作的答案,所以现在,这里有一个黑客的答案。关闭
stat_summary
图例。然后,添加点和线几何图元,其数据超出要打印的实际数据范围。这将创建所需的点和水平线图例。然后将图轴限制设置为仅包括真实的数据的范围,这样假数据点就不可见了。另一种选择是使用网格函数将图例键grobs旋转90度,但我将把它留给比我更熟练的
grid
。shyt4zoc3#
更新答案
ggplot2
3.3.0解决了这个问题。当使用xmin
和xmax
参数时,使用geom_pointrange()
函数将在图例中呈现水平误差条:创建于2023-05-16带有reprex v2.0.2
旧答案
ggstance
软件包提供了一个易于实施的解决方案:或者作为
geom
:mkshixfv4#
按照@eipi10的建议,使用
grid
函数来编辑grob-相关的grob是段。有两种可能性:1)旋转节段滑车;或2)编辑片段grob的端点的x和y坐标。alen0pnh5#
编辑自:https://gist.github.com/grantmcdermott/d86af2b8f21f4082595c0e717eea5a90
要点是使用
geom_pointrangeh
fromggstance
,并记住指定aes
w.r. t。x轴。