Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/r/78.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/qt/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
R 多条黄土线_R_Loess - Fatal编程技术网

R 多条黄土线

R 多条黄土线,r,loess,R,Loess,我可以根据一列日期和第二列值在R中创建一条黄土线。加载数据集后,我将下面的一列数据可视化: scatter.smooth(x=1:length(goals$Value), y=goals$Value) 但是,如何为其他柱添加多条黄土线?在一个图形中绘制所有黄土线的代码是什么?例如,每个附加列都被命名为Value2、Value3、Value4等。您可以使用行功能: # create test data set.seed(123) df <- data.frame("days"=1:25,

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

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

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

您可以使用
功能:

# 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))

如果您还没有考虑过它,那么包
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)

scatter.smooth
调用
leuch.smooth
,它使用
simpleless
函数生成更平滑的。为了确保以相同的方式创建其他行,是否最好使用
行(leash.smooth(…)
。谢谢您的提示,@eipi10。我不知道这件事。我将进行编辑。这非常有效,下面的另一个答案也是如此。有没有办法让每一行都有不同的颜色?如果是这样的话,R是否将颜色识别为单词,例如“红色”、“绿色”等,而不是十六进制代码?@user2020088我在上面添加了代码,以不同的颜色绘制线条。要查看可用颜色的更多选择,请查看
?par
中的颜色规格部分。我对R的基本知识不太熟悉。我将安装ggplot2库。我的桌面上有.csv文件。我已将工作目录更改为桌面。那么上面哪一段代码正在加载.csv?种子(123)是什么意思?如果天最长为24个月,我是否将其更改为“(“天”=1:24”)?是否应将其他列(如v3、v4、v5等)添加到数据帧行?是否需要为任何其他列(如geom_smooth(aes(y=v3)、se=F)复制最后一行您可以使用
read.csv
读取csv;Imo和我使用了一些示例数据来演示代码的工作原理,因为您没有提供实际数据的示例来运行代码。如果您直接读取csv,您将不需要单独使用
data.frame
行。最后,是的,需要将最后一行复制到添加更多的黄土线。这非常有效。有没有办法使每一条线具有不同的颜色?我已经编辑了答案,其中包括两种方法(一种是使用tidyr::gather重塑数据集,另一种是不使用tidyr::gather重塑数据集),为每一条线提供不同的颜色。
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