如何绘制具有躲闪位置的图形?

时间:2018-02-20 21:45:37

标签: r ggplot2

我是R新手。我会尽量简短而简单。目前,我试图在一个离散的x轴上基于另一个条件连接两个条件之间的点。

下面是一些测试数据和我尝试绘制一些数据。

set.seed(42)

# Test case data
mydf1 <- tibble(
  xx = rep('myLabel', 8),
  yy = rnorm(8),
  grp = rep(c(1, 2), each = 4),
  cond = rep(c('a', 'b', 'c', 'd'), length.out = 8)
)

ggplot(mydf1, aes(x = xx, y = yy, col = factor(grp))) +
  geom_point(position = position_dodge(width = 0.9)) + 
  geom_path(position = position_dodge(width = 0.9), aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for geom_path and position_dodge")

enter image description here

据我所知,似乎在绘制后应用了position_dodge。有没有办法改变这种行为?或实现以这种方式连接这些点的总体目标?

感谢您的时间。

编辑:详情。

EDIT2:

我想基于一个主要条件中的4个条件捕捉grp之间的前后关系。

2 个答案:

答案 0 :(得分:2)

您可以绘制分类x轴。

ggplot(mydf1, aes(x = cond, y = yy, col = factor(grp))) +
  geom_point() + 
  geom_path(aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for categorical X-axis")

enter image description here

或者,如果您需要比较映射到x轴的多个分类维度,可以尝试使用facets。

 ggplot(mydf1, aes(x = cond, y = yy, col = factor(grp))) +
  geom_point() + 
  geom_path(aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for Categorical X-axis and Facets") +
  facet_wrap(~cond)

enter image description here

答案 1 :(得分:2)

可能你想要这个。

set.seed(42)
library(ggplot2)
ggplot(mydf1, aes(x = grp, y = yy, col = factor(grp))) +
  geom_point() +
  geom_path(aes(group = cond), col = "black") +
  theme_bw() +
  ggtitle("Test Case for geom_path and position_dodge") +
  xlim(c(.5, 2.5)) +
  labs(color = "Group", x = "myLabel", y = "yy") +
  theme(axis.text.x=element_blank(),
        axis.ticks.x=element_blank())

enter image description here