我的数据格式如下:
Block Condition Value
1 Red 66
2 Red 34
3 Red 48
4 Red 55
5 Red 63
6 Red 23
1 Blue 72
2 Blue 28
3 Blue 82
4 Blue 44
5 Blue 44
6 Blue 32
1 Yellow 22
2 Yellow 24
3 Yellow 54
4 Yellow 18
5 Yellow 27
6 Yellow 66
我希望在折线图中将其可视化,x轴上的块1-6,y轴上的值和根据条件着色的三条线。我试过了:
ggplot(data = df, aes(x=Block, y=Value, colour = Condition) +
geom_line()
这导致了一个空图形,即位于X轴上的块,值按预期放置在y轴上,但没有线条。在线搜索时,我注意到有些人设法通过将条件从字符转换为因子来解决它。我试过了:
ggplot(data = tacs, aes(x=Block, y=Value, colour
=as.factor(Condition))) +
geom_line()
但这也没有奏效。我对R比较陌生,希望有人能够指出我正确的方向。提前谢谢!
答案 0 :(得分:0)
您的代码缺少一个括号。它应该是这样的:
ggplot(data = df, aes(x=Block, y=Value, colour = Condition)) +
geom_line()
应生成此图表:
警告geom_path: Each group consists of only one observation. Do you need to adjust the group aesthetic?
不确定这是否是您想要绘制的内容,因为未绘制线条。原因是需要为aes()
指定geom_line()
,尤其是group=Condition
。如果您使用此代码,您将获得一个更好的图表:
ggplot(df, aes(x = Block, y = Value, colour = Condition)) +
geom_line(aes(x = Block, y = Value, colour = Condition, group = Condition))
这背后的原因是geom_line()
只有在被告知它们属于同一数据组时才连接点。 See this link了解更多信息。如果您想要指定的确切颜色,可以使用scale_color_manual()
手动指出这些颜色,我认为这就是您所追求的:
ggplot(df, aes(x = Block, y = Value, colour = Condition)) +
geom_line(aes(x = Block, y = Value, colour = Condition, group = Condition)) +
scale_color_manual(values=c("red", "blue", "yellow"))