【问题标题】:ggplot2 change color of line based on categorical variableggplot2根据分类变量改变线条的颜色
【发布时间】:2014-03-29 00:23:20
【问题描述】:

我正在寻找一种在日期范围内有一条一致的线的方法,该线会根据分类变量更改颜色。

假设数据如下所示:

日期值类别
2014 年 1 月 1 日 - 10 日 - A
2014 年 1 月 2 日 - 11 日 - A
2014 年 1 月 3 日 - 20 日 - 乙
2014 年 1 月 4 日 - 26 日 - 乙
2014 年 1 月 5 日 - 50 - 日

我希望线条在穿过不同类别时改变颜色。有没有办法用ggplot2做到这一点?或者我需要使用不同的库。

我可以得到折线图,但它是破碎的和脱节的。

更新
目前我可以得到一个散点图来做我想做的事

qplot(x=data1$date, y = data1$value,data = data1, color = data1$category,geom="point")

但是当我使用“line”时,它告诉我

每组仅包含一个观察结果。需要调整群体审美吗?

【问题讨论】:

  • 这对你有用吗ggplot(df , aes(Date , Value , colour=Category , group=1)) + geom_line()
  • user20650,你的答案是合适的,你应该提交作为答案让亚历克斯可以接受
  • 我不认为 ggplot 中的线条可以是多色的(因此我现在删除了评论)但我错了。 @user20650 是对的。
  • 鉴于@user20650 的评论,我现在得到“美学的长度必须为一,或与数据问题的长度相同”诚然,由于数据的隐私,我提供了一个虚构的样本集跨度>
  • @Alex;您也可以使用 qplot 执行此操作,但您需要使用 group 语句。 qplot(x=Date, y = Value,data = df, color = Category,group=1,geom="line").

标签: r ggplot2


【解决方案1】:

您需要分配一个组变量:

使用 qplot:

  qplot(x=Date, y = Value,data = df, color = Category,group=1,geom="line")

或ggplot:

ggplot(df , aes(Date , Value , colour=Category , group=1)) + geom_line() 

另外请注意,在您的 qplot 语句中,您不需要使用“yourdata$”,因为您定义了 data = yourdata。如果你使用 yourdata$var,你会在使用 ggplot 时遇到问题。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-07-26
    • 2015-07-29
    • 2013-10-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多