使用重复因子使用ggplot2绘图

时间:2018-04-28 15:40:35

标签: r ggplot2

我正在尝试使用以下代码绘制ggplot_dumbbell

library(ggplot2)
library(ggalt)
theme_set(theme_classic())

df_senPhi <- structure(list(phi = c(0.1, 0.15, 0.2, 0.3, 0.4, 0.5, 0.6, 0.7, 
0.8, 0.9, 0.9, 1), W = c(7833625.7334, 8291583.0188, 8762978.0131, 
8169317.158, 8460793.8918, 8765222.8718, 8266025.5499, 8311199.2075, 
8265304.816, 8289392.5799, 8273733.0523, 8284554.5615), Type = c("A, B, C", 
"A, B, C", "A, B, C", "D, E", "D, E", "D, E", "F, G", "F, G", 
"H, I", "H, I", "I, J", "I, J"), pChange = c(-0.0533144181552553, 
0.00202924695507283, 0.0589968453118437, -0.0127464560859453, 
0.0224782062508261, 0.0592681341679742, -0.00105934677399903, 
0.00439984310620854, -0.00114644672167306, 0.00176453467558519, 
-0.000127903066776307, 0.00117986514708678)), class = "data.frame", row.names = c(NA, 
-12L), .Names = c("phi", "W", "Type", "pChange"))

df_senPhi$phi <- factor(df_senPhi$phi, levels=as.character(df_senPhi$phi))  # for right ordering of the dumbells


gg <- ggplot(df_senPhi, aes(x=0, xend=pChange, y=phi, color = Type)) + 
  geom_dumbbell(#colour="#a3c4dc",
    size=0.75, 
    colour_xend="#0e668b") + 
  scale_x_continuous(label=scales::percent)

plot(gg)

如果您运行此代码,您将收到一条警告,说“不推荐使用因子中的重复级别”。

如果仔细查看df_senPhi,您可以看到12条记录。但是在绘图时,只绘制了11条记录。此外,10th11th记录在数据框中具有相同的phi值,这些值与相同级别相关联。这也导致了情节中两个phi条的重叠(这可能就是为什么我只看到11个哑铃)。

我想要绘制所有12条记录,以便第二个0.9 phi的哑铃出现在第一个上方,就像它们是两个不同的值一样。

有没有办法实现这个目标?

0 个答案:

没有答案