r의 데이터 포인트 위에있는 함수를 플로팅합니다
-
13-09-2019 - |
문제
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)
제휴하지 않습니다 StackOverflow