使用ggplot为图中的线子集着色

时间:2019-01-08 18:55:00

标签: r ggplot2 plot colors

我正在尝试使用geom_path()连接绘图上的点。我还想根据组变量(t)为某些行(间隔)上色。这是我到目前为止的内容:

ggplot(data, aes(x=x, y=x)) +
  geom_point() +
  geom_path(color=t)

它的作用是“错误地”连接基于该组的点。我只希望正确的连接线具有单独的颜色。

有人可以帮我吗?

2 个答案:

答案 0 :(得分:2)

由于您没有共享数据:如果您使用布尔值上色,可能会遇到边缘情况。例如变量的特定值。

在这种情况下,ggplot将geom_pathvar == x分组。您可以通过添加group = 1来防止这种情况。

基本(有些人为设计)示例

ggplot(mtcars) +
    geom_point(aes(mpg, hp)) +
    geom_path(aes(mpg, hp))

1

color = cyl == 4上的情节

ggplot(mtcars) +
    geom_point(aes(mpg, hp)) +
    geom_path(aes(mpg, hp, color = cyl == 4))

3

group = 1上的情节

ggplot(mtcars) +
    geom_point(aes(mpg, hp)) +
    geom_path(aes(mpg, hp, color = cyl == 4, group = 1))

2

答案 1 :(得分:1)

如果传递的是单色(不是您想要的颜色)或等于打印元素数量的颜色矢量,则可以使用ggplot为您着色线条。例如,

data <- data.frame(x = 1:10, y = 1:10)

ggplot(data, aes(x=x, y=x)) +
  geom_point() +
  geom_path(color=rainbow(10))

A plot with intervals colored