作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想为我的数据框创建漂亮的置信区间图df
:
> df
Estimate Lower Upper
A1 0.005414976 -0.01227699 0.02310694
A2 0.004046546 -0.01368911 0.02178220
A3 0.002761602 -0.01491484 0.02043804
A4 -0.002860038 -0.02049349 0.01477342
A5 -0.004197288 -0.02178773 0.01339316
A6 0.011004835 -0.12687561 0.14888529
B1 -0.001077768 -0.01130327 0.00914773
C1 0.137894575 -0.09659997 0.37238912
D1 0.128514414 -0.10866480 0.36569363
D2 0.168863152 -0.06347553 0.40120183
D3 0.139645665 -0.09431216 0.37360349
D4 0.028744139 -0.19562867 0.25311695
从数据集中可以看出,前6行代表一个因素的水平,然后有两个因素只有一个水平,最后是有4个水平的因素。我想以一种明确的方式显示它,以明确级别属于一个因素。
我当前的情节如下所示:
ggplot(df, aes(x = rownames(df), y = Estimate, ymin = Lower, ymax = Upper)) +
geom_pointrange() +
geom_hline(yintercept = 0, linetype = 2) +
coord_flip()
我知道还有另一种选择如何对因素进行分组,例如请参阅 this ,但我想创建所描述的内容。
任何帮助将不胜感激!
最佳答案
一种解决方案(使用ggplot2
版本2.2.0)是使用分面,但将位置调整到与轴相同的一侧,然后将分面名称放在轴之外并更改文本方向和垂直位置.
首先,添加新变量来显示因子水平。
df$Level <- paste("Factor ",substr(rownames(df),1,1))
ggplot(df, aes(x = rownames(df), y = Estimate, ymin = Lower, ymax = Upper)) +
geom_pointrange() +
geom_hline(yintercept = 0, linetype = 2) +
coord_flip() +
facet_grid(Level~.,scales = "free",space="free",switch = "both") +
theme(strip.placement = "outside",
strip.text.y = element_text(angle = 180,vjust=1, face = "bold"),
strip.background = element_blank(),
panel.spacing = unit(0,"cm"))
关于r - 在 ggplot 中向轴标签添加额外文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41545018/
我是一名优秀的程序员,十分优秀!