【R】 부드러운 curve를 그리자

1. 취지



발단은 이 기사를 쓴 것.
【R】 정규 분포의 스펙트럼을 그린다

이 기사를 써 그래프를 이미지에 출력했을 때, 문득 생각했다.

평활화하고 싶다! ! ! ! !
curve() 를 사용하여 부드러운 곡선을 plot하고 싶습니다! ! ! ! ! 와.

그렇다면 열심히 화질 향상을 목표로합시다.

2. 비교



2-1. before





너무 빡빡해서 볼 수 없어.
이대로 SVG 출력해도 확대에 견딜 수 없습니다.

2-2. after





예술품과 분별할 정도의 아름다움.

3. 절차



3-1. 「점의 수」를 늘린다



자꾸 말해 버리면, R로 곡선 그래프를 묘사하려고 하면 「많은 점과 점을 직선으로 묶는」 것으로 곡선을 표현하려고 버립니다. 그러니까 깍꽝 하고 있어도 어쩔 수 없다···아니 기다려. 그럼 점의 수를 늘리면 좋지 않을까・・・?

너같은 감이 좋은 굴은 싫어— 쇼 터커

이 점을 노드라고 합니다만, 디폴트에서는 101개가 되어 있습니다.
하지만 실은 인수로 무한히 늘릴 수 있습니다. PC의 처리 능력이 따라잡는 한은.

그렇다면 늘리자. 원하는만큼.n라는 인수에 노드 수를 설정하십시오.

참고로, 나의 온보로 PC 환경(6년째의 온보로 PC)에서도 한 곡선당 3만점이라도 전혀 여유입니다.
# before (ノード数 = 101)
> curve(dnorm(x, 0, 1), -4, 4, add = F, lwd = 2)

# after (ノード数 = 30,000)
> curve(dnorm(x, 0, 1), -4, 4, add = F, lwd = 2, n = 30000)

3-2. 벡터 이미지로 저장하기



점의 수를 늘리면 이를 벡터 이미지로 저장합니다.
RStudio의 경우 Plot 다이어그램 위쪽에서 Export > Save as Image를 선택합니다.

크기는 조정하거나 하지 않아도 됩니다만, Image Format에서 벡터 이미지 형식의 것을 선택합시다.
기본적으로 SVG 파일입니다.
메타파일도 좋지만 점수를 너무 늘리면 제대로 저장하지 못할 수 있습니다.

3-3. 좋아하는 편집기로 PNG로 저장



필요한 경우 저장된 SVG 파일을 Inkscape 등 SVG 파일을 처리할 수 있는 소프트웨어로 열어 그대로 PNG로 내보냅니다.
이미지의 크기는 여기에서 조정할 수 있습니다. 조금 크게 저장해 두는 것이 추천.
굉장히 크게 하지 않는 한은 따끈따끈하지 않을 것입니다만, 만약 북극이 신경이 쓰이면 3-1. 로 돌아가 점의 수를 늘려 주세요.

4. 참고로


  • 실은 SVG로서 출력하는 것으로, 곡선 부분 뿐만이 아니라 축이나 라벨 문자까지도 예쁘게 묘사할 수 있게 됩니다.
  • 소개한 방법은 curve() 뿐만 아니라 plot() 에도 사용할 수 있는 것을 확인했습니다. 그 밖에도 뭔가 있으면 알려주세요.
  • > FUN <- function(x) {x^3-x^2-25*x+1}
    
    # before (ノード数 = 5)
    > plot(FUN, -7, 7, n = 5)
    
    # after (ノード数 = 100,000)
    > plot(FUN, -7, 7, n = 100000)
    

    5. 결론



    역시 그래프는 부드러운 것이 제일!

    Enjoy!

    끝.

    좋은 웹페이지 즐겨찾기