2014-10-11 9 views
0
curve(-12 * log(x) - (415/x), 25, 50) 
abline(h = -55, lty = 2) 

커브와 실선 사이의 영역을 플롯하고 음영 처리하고 싶지만 할 수 없습니다. 나는 pracma 패키지에서 trapz 함수를 사용하여 시도했다. 어떤 제안이라도 고맙겠습니다.곡선 아래 영역

답변

1

그런 다음 부드럽게 보이게하기 위해 기본적으로 충분한 점의 x 및 y 좌표를 정의하는 polygon()을 사용할 수 있습니다. 나는 120와 함께 갈 것이다 :

ff <- function(x) -12 * log(x) - (415/x) ## define curve 

# get a vector or potential x values for the polygon 
x1 <- seq(from=25, to=50, length.out=120) 
x1 <- x1[ff(x1) >= -55] ## filter only relevant section 

x2 <- rev(x1) ## reverse the vector for the return trip 
xx <- c(x1, x2) ## concatenate to get all x coordinates 
yy <- c(rep(-55, length(x1)), ff(x2)) 

curve(ff, 25, 50) 
abline(h = -55, lty = 2) 
# join the dots and fill the space orange 
polygon(xx, yy, col='orange') 

편집 : 전체 절차에 추가 된 코드는 제안으로 나는의 코드 조각을 추가, @epsilone

+1

니스 응답 @ilir의 의견을 반영하기 위해 'polygon'을 호출하기 전에 질문을하여 단일 코드 블록에서 원하는 최종 출력을 얻을 수 있도록하십시오;) – epsilone

+0

@ espilone 감사합니다. 좋은 제안입니다. – ilir