0

我必须通过 geom_text() 绘制表格,并且我尝试使用 position_jitter /dodge 和 hjust 使其看起来像表格并更改重叠或以倾斜方式排列的文本。

这是一个示例代码:

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

它产生的情节如下: 在此处输入图像描述

我需要帮助安排所有垂直直线对齐的文本。

谢谢

4

1 回答 1

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)

在此处输入图像描述

于 2017-06-22T08:58:10.173 回答