문제

GGPlot을 사용하여 데이터 위에 수학적 함수를 오버레이하는 방법이 있습니까?

## add ggplot2
library(ggplot2)

# function
eq = function(x){x*x}

# Data                     
x = (1:50)     
y = eq(x)                                                               

# Make plot object    
p = qplot(    
x, y,   
xlab = "X-axis", 
ylab = "Y-axis",
) 

# Plot Equation     
c = curve(eq)  

# Combine data and function
p + c #?

이 경우 내 데이터는 함수를 사용하여 생성되지만 사용 방법을 이해하고 싶습니다. curve() GGPLOT와 함께.

도움이 되었습니까?

해결책

당신은 아마 원할 것입니다 stat_function:

library("ggplot2")
eq <- function(x) {x*x}
tmp <- data.frame(x=1:50, y=eq(1:50))

# Make plot object
p <- qplot(x, y, data=tmp, xlab="X-axis", ylab="Y-axis")
c <- stat_function(fun=eq)
print(p + c)

그리고 당신이 정말로 사용하고 싶다면 curve(), 즉, 계산 된 X 및 Y 좌표 :

qplot(x, y, data=as.data.frame(curve(eq)), geom="line")

다른 팁

질문 제목이 "R의 플로팅 기능"이라는 점을 감안할 때 여기에 사용 방법은 다음과 같습니다. curve 기본 R 플롯에 함수를 추가합니다.

이전과 같이 데이터를 만듭니다

eq = function(x){x*x}; x = (1:50); y = eq(x)

그런 다음 사용하십시오 plot 기본 그래픽에서 포인트를 플로팅하기 위해 curve 이랑 add=TRUE 인수, 곡선을 추가합니다.

plot(x, y,  xlab = "X-axis", ylab = "Y-axis") 
curve(eq, add=TRUE)
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top