1

我可以根据一列日期和第二列值在 R 中创建一条黄土线。加载数据集后,我将下面的一列数据可视化:

scatter.smooth(x=1:length(goals$Value), y=goals$Value)

但是,如何为其他列添加多条黄土线?在一个图形中绘制所有黄土线的代码是什么?比如说,每个额外的列都被命名为 Value2、Value3、Value4 等。

4

2 回答 2

2

如果您还没有考虑过,该软件包ggplot2使此类图形问题更容易处理,并提供更好的图形:

library(ggplot2)
library(tidyr)

set.seed(123)
df <- data.frame("days"=1:25, "v1"=rnorm(25), "v2"=(rnorm(25)+0.1))

#Reshape data from wide to long
df2 <- gather(df,var,val,c(v1,v2))

ggplot(df2,aes(x = days, y = val)) +
  geom_point() +
  geom_smooth(aes(colour = var),se = F)

如果您不想重塑数据,您可以像这样添加单独的行:

ggplot(df,aes(x = days, y = v1)) +
  geom_point() +  #Add scatter plot
  geom_smooth(aes(colour = 'v1'),se = F) +   #Add loess 1
  geom_smooth(aes(y = v2,colour = 'v2'),se = F) +  #Add loess 2... and so on
  scale_colour_discrete(name = 'Line',
                        breaks = c('v1','v2'),
                        labels = c('variable 1','variable 2'))    #Define legend
于 2016-04-22T19:00:41.713 回答
1

您将使用以下lines功能:

# create test data
set.seed(123)
df <- data.frame("days"=1:25, "v1"=rnorm(25), "v2"=(rnorm(25)+0.1))
# first plot
scatter.smooth(x=df$days, y=df$v1)
# add plot of second lowess line
lines(loess.smooth(x=df$days, y=df$v2))

为线条添加颜色:

scatter.smooth(x=df$days, y=df$v1, lpars=list(col="red"))
lines(loess.smooth(x=df$days, y=df$v2), col="green")
于 2016-04-22T18:43:20.420 回答