R 如何在我的图表中添加ggplot中的图例
我有一些代码来模拟高斯过程。请有人帮我在右上角的情节中添加一个传奇。我想说明每种线条样式/颜色的不同参数值,例如l=1、l=5、l=10。谢谢R 如何在我的图表中添加ggplot中的图例,r,ggplot2,legend,R,Ggplot2,Legend,我有一些代码来模拟高斯过程。请有人帮我在右上角的情节中添加一个传奇。我想说明每种线条样式/颜色的不同参数值,例如l=1、l=5、l=10。谢谢 # simulate a gaussian process simGP = function(K){ n = nrow(K) U = chol(K) # cholesky decomposition z = rnorm(n) c(t(U) %*% z) } # choose points to simulate the covarian
# simulate a gaussian process
simGP = function(K){
n = nrow(K)
U = chol(K) # cholesky decomposition
z = rnorm(n)
c(t(U) %*% z)
}
# choose points to simulate the covariance.
x = seq(-1, 1, length.out = 500)
# Exponential kernel ------------------------------------------------------
kernel_exp = function(x, l = 1) {
d = as.matrix(dist(x))/l
K = exp(-d)
diag(K) = diag(K) + 1e-8
K
}
{y1 = simGP(kernel_exp(x,l=10))
y2 = simGP(kernel_exp(x,l=1))
y3 = simGP(kernel_exp(x,l=0.1))
data1 <- as.data.frame(x,y1)
data2 <- as.data.frame(x,y2)
data3 <- as.data.frame(x,y3)
df=data.frame(data1,data2,data3)
ggplot() +
geom_line(data=data1, aes(x=x, y=y1), color="green4", linetype = "twodash", size=0.5) +
geom_line(data=data2, aes(x=x, y=y2), color='red', linetype="longdash", size=0.5) +
geom_line(data=data3, aes(x=x, y=y3), color='blue') +
scale_color_manual(values = colors) +
theme_classic() +
labs(x='input, x',
y='output, f(x)')+
theme(axis.text=element_text(size=16),
axis.title=element_text(size=14))}
模拟高斯过程
simGP=函数(K){
n=nrow(K)
U=chol(K)#cholesky分解
z=rnorm(n)
c(t(U)%*%z)
}
#选择点以模拟协方差。
x=序列(-1,1,长度.out=500)
#指数核------------------------------------------------------
内核exp=函数(x,l=1){
d=作为矩阵(距离(x))/l
K=exp(-d)
diag(K)=diag(K)+1e-8
K
}
{y1=simGP(内核_exp(x,l=10))
y2=simGP(内核扩展(x,l=1))
y3=simGP(内核扩展(x,l=0.1))
data1您可以使用dataframe变量对线型和颜色进行分组。 如果要指定颜色和线型,请使用
scale\u color\u discrete
和scale\u linetype\u discrete
y1 = simGP(kernel_exp(x,l=10))
y2 = simGP(kernel_exp(x,l=1))
y3 = simGP(kernel_exp(x,l=0.1))
data1 <- data.frame(x, y = y1, value = "10")
data2 <- data.frame(x, y = y2, value = "1")
data3 <- data.frame(x, y = y3, value = "0.1")
df=rbind(data1,data2,data3)
ggplot(data = df, aes(x=x, y=y, color = value, linetype = value, group = value)) +
geom_line(size=0.5) +
theme_classic() +
labs(x='input, x',
y='output, f(x)')+
theme(axis.text=element_text(size=16),
axis.title=element_text(size=14))
y1=simGP(内核扩展(x,l=10))
y2=simGP(内核扩展(x,l=1))
y3=simGP(内核扩展(x,l=0.1))
data1谢谢。这解决了问题。但是,我现在必须使用单词“value”作为键的标题。没问题。您可以将单词“value”的所有实例更改为所需的标签,或者使用函数scale\u color\u discrete和scale\u linetype\u discrete更改标签。