首页 > 解决方案 > 使用长数据格式更改 ggplot2 图中的一种线型

问题描述

我有融化形式的数据

b <- data.table(q = seq(5), 
                A = rnorm(5, mean=1, sd=1), 
                B = rnorm(5, mean=1.5, sd=1), 
                C = rnorm(5, mean=2, sd=1))
longb <- melt.data.table(b, id.vars = 'q', measure.vars = c(names(b)[-1]))

绘制三条线必须做的:

ggplot(data = longb, aes(x = q, y = value, colour = variable)) +
  geom_line()

如果可以将系列之一(例如 C)从线更改为虚线图(例如geom_point()),我会徘徊吗?

标签: rggplot2

解决方案


像这样的东西?

ggplot(data = longb, aes(x = q, y = value, colour = variable)) +
  geom_line(aes(linetype = (variable == "C"))) +
  guides(linetype = "none")

在此处输入图像描述

或更好:

ggplot(data = longb, aes(x = q, y = value, colour = variable)) +
  geom_line(aes(linetype = variable)) +
  scale_linetype_manual(values = c(1,1,3))

在此处输入图像描述

还是好?:

ggplot(data = longb[variable != "C"], aes(x = q, y = value, colour = variable)) +
  geom_line() +
  geom_point(data = longb[variable == "C"], aes(x = q, y = value))

在此处输入图像描述


推荐阅读