2017-06-22 495 views
0

我必须通过geom_text()来绘制表格,并尝试使用position_jitter/dodge和hjust使它看起来像一张桌子并改变文本被重叠或排列在倾斜的方式。geom_text重叠ggplot2中的文本和文本对齐

这里是一个示例代码:

require(ggplot2) 
require(reshape2) 

dia3 <- melt(CO2, id = c(colnames(CO2)[1],colnames(CO2)[2])) 
dia3 

p <- ggplot(dia3, aes_string(x=colnames(dia3)[2],y=colnames(dia3)[1],color = colnames(dia3)[3]))+ 
    geom_text(aes_string(label = colnames(dia3)[4]), 
      position=position_dodge(width = 0.5), 
      hjust = 0.5, 
      size = 2.5 
)+ 
    scale_x_discrete(drop = TRUE)+ 
    theme_bw()+ 
    theme(
    axis.ticks.x = element_blank(), 
    axis.text.y= element_text(color="black", size=8), 
    axis.title.y = element_blank(), 
    axis.title.x = element_blank(), 
    legend.key = element_rect(fill="white"), legend.background = element_rect(fill=NA), 
    legend.position="bottom", 
    legend.title = element_blank(), 
    panel.grid = element_blank(), 
    panel.border = element_blank() 
) 
p 

它生产的情节一样: enter image description here

我需要安排所有的垂直直线排列的文字帮助。

感谢

回答

1

闪避是group,它会自动设置为已映射任何因素的变量,其中包括在这种情况下x完成。覆盖缺省来解决这个问题:

ggplot(dia3, aes_string(x = colnames(dia3)[2], y = colnames(dia3)[1], 
         color = colnames(dia3)[3], group = colnames(dia3)[3]))+ 
    geom_text(aes_string(label = colnames(dia3)[4]), 
       hjust = 0.5, 
       size = 2.5, 
       position = position_dodge(0.5)) + 
    scale_x_discrete(drop = TRUE) 

enter image description here

+1

根本真棒! –