I가 다음 스크립트 :다른 매개 변수 값에 대한 분포를 플로팅하려면 어떻게해야합니까?
: 로그 - 정규 분포가 매개 변수의 다른 값과 같은 방법의 다음 그래프 (마이너스 제목)를 생산
library(ggplot2)
values <- c(0.1,0.15,0.2,0.3,0.5,1,1.5,2,2.5)
colours <- palette()[1:length(values)];
p <- ggplot(data.frame(x=c(0, 2)), aes(x)) +
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 0.1),aes(colour="0.1"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 0.15),aes(colour="0.15"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 0.2),aes(colour="0.2"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 0.3),aes(colour="0.3"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 0.5),aes(colour="0.5"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 1),aes(colour="1"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 1.5),aes(colour="1.5"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 2),aes(colour="2"))+
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = 2.5),aes(colour="2.5"))+
scale_colour_manual("Sigma:", values=colours, breaks=as.character(values))
p
복사 한 붙여 넣기 된 줄을 눈에 더 편한 것으로 대체하려면 어떻게해야합니까?
뭔가
stat_function(fun= function(x) dlnorm(x,mean = 0, sd = values),aes(colour=as.character(values)))
같은 편집 : 중복으로 제안 된 질문과는 달리, 나는 기능이 아닌 데이터를 처리하고있어, 그래서 나는이 제안
을 적용하는 방법을 잘 모르겠어요 나는 for-loop에서 다음과 같이 시도했다.
library(ggplot2)
values <- c(0.1,0.15,0.2,0.3,0.5,1,1.5,2,2.5)
colours <- palette()[1:length(values)];
p <- ggplot(data.frame(x=c(0, 2)), aes(x)) +
ggtitle(expression(paste("Log-normaal distributie met verschillende waarden van ", sigma)))+
ylab(expression(paste(f[X](x))))
for(i in 1:length(values)){
p <- p + stat_function(fun= function(x) dlnorm(x,mean = 0, sd = values[i]), aes(colour=as.character(values[i])))
}
p + scale_colour_manual("Sigma:", values=colours, breaks=as.character(values))
그러나 작동하지 않는다 : 마지막 커브 만 그려 준다.
나는 또한 대답은 잘 작동하는 제안으로했지만, 나는 색상 레이블을 추가 할 다음 드릴 수 없습니다 : Error in (function (..., row.names = NULL, check.rows = FALSE, check.names = TRUE, : arguments imply differing number of rows: 0, 2
ggplot(data.frame(x=c(0, 2)), aes(x)) +
mapply(function(col, mean, sd) {
stat_function(fun = dlnorm, args = list(mean = mean, sd = sd), aes(colour=col))},
mean = 0, sd = values, col = as.character(values)) +
scale_colour_manual("Sigma:", values=colours, breaks=as.character(values))
그것은 말하는 오류가 발생합니다
가능한 복제 [A에 대한 루프를 사용하여 ggplot에 레이어를 추가하는 방법 ] (https://stackoverflow.com/questions/15987367/how-to-add-layers-in-ggplot-using-a-for-loop) – LAP
@LAP : 그 질문을 보았지만 제대로 작동하지 못했습니다. . 나는 데이터가 없다. 그러나 오히려 연속적인 곡선이 함수로부터 도출된다 ... – Gloomy