根据特定的列值连接ggplot中的点

时间:2012-02-06 11:05:01

标签: r ggplot2

我有以下数据集t

n <- 12
t <- data.frame(
  V1    = runif(n, 0.12, 0.35),
  V2    = runif(n, 0.25, 0.39),
  group = gl(3, 4, labels = c("a1", "a2", "a3")),
  x     = seq_len(n),
  color = rep(rep.int(c("R", "G"), 2), c(3, 4, 3, 2))
)

我根据这些数据创建了以下图表。

p <- ggplot(t, aes(x, colour = color)) +  
  geom_point(aes(y = V1, size = 10)) + 
  geom_point(aes(y = V2, size = 10))

我现在要做的是根据组列连接点(例如,组a1的点将用蓝线连接,组a2的点将连接在一起一条黄线,......)我想根据V1V2V1的虚线和V2的正常线)来区分线。< / p>

如何做到这一点?

2 个答案:

答案 0 :(得分:2)

首先:命名一个数据集“t”不是一个好主意,因为它有一个令人困惑,因为还有一个函数t()。

最简单的方法是先熔化()数据集

Molten <- melt(t, id.vars = c("group", "x", "color"))
ggplot(Molten, aes(x = x, y = value, colour = group, linetype = variable)) + geom_line()

查看ggplot2网站,了解如何自定义颜色。

答案 1 :(得分:0)

如果您想在不使用melt()的情况下绘制图表:

p <-ggplot(t) + geom_line(aes(x,V2,color=group)) + geom_line(aes(x,V1,color=group), linetype = "dashed")