2017-02-28 10 views

답변

1

This 더 나은 대답 일 수 있습니다. 기본 그래픽을 사용하는 것도 가능하지만 더 많은 작업이 필요할 수도 있습니다. 여기에 예제가 있습니다.

d <- structure(list(Angle = c(0, 10, 20, 30, 40, 50, 60, 70, 80, 90, 
100, 110, 120, 130, 140, 150, 160, 170, 180, 190, 200, 210, 220, 
230, 240, 260, 270, 280, 290, 300, 310, 320, 330, 340, 350, 250 
), Frequency = c(0, 0, 0.001, 2, 4, 18.03, 11, 12, 5, 7, 10, 
13, 2, 0.003, 0.01, 0, 1, 0.05, 2, 3, 3.7, 6, 0, 0, 0, 0, 0.2, 
0.006, 0, 0, 0, 0, 0, 0, 0, 0)), .Names = c("Angle", "Frequency" 
), row.names = c(NA, 36L), class = "data.frame") 

d$radian = d$Angle*pi/180 
d$x = d$Frequency*cos(d$radian) 
d$y = d$Frequency*sin(d$radian) 
m = max(d$x, d$y) 
graphics.off() 
windows(width = 6, height = 6) 

plot(x = m, 
    y = m, 
    xlim = c(-m,m), 
    ylim = c(-m,m), 
    type = "n", 
    asp = 1, 
    axes = FALSE, 
    xlab = "", 
    ylab = "") 
par(xpd = TRUE) 

symbols (x =c(0,0,0,0,0), y = c(0,0,0,0,0), circles=c(3,6,9,12,15), fg = "grey", 
            add = TRUE, inches = FALSE, lty = 2) 
lines(x = c(-15,15), y = c(0,0), lty = 2) 
lines(x = c(0,0), y = c(-15,15), lty = 2) 
text(x = c(0,0,-15,15), y = c(-15,15,0,0), 
          labels = c("180","0","270","90"), pos = c(1,3,2,4)) 

for (i in 1:nrow(d)){ 
    lines(x = c(0,d$x[i]), y = c(0,d$y[i]), lwd = 3) 
} 

enter image description here

참고 : 라벨이 정말 멋지다

+0

각도 때 내가 망쳐! 그러나 어떻게 "라인"이 작은 분야와 마찬가지로 "조직적"이 될 수 있을까? – xiaoyong

+1

미안합니다. @ d.b. 이 그래프는 실제로 다른 각도의 세포 빈도를 나타낼 수 있습니다. 그러나 이것은 히스토그램이 아닌 선 그래프입니다. 히스토그램을 만드는 방법? 막대 모양처럼 보이도록 lwd = 8을 변경했지만 히스토그램이 아닙니다. – xiaoyong

+0

@ xiaoyong, 동의합니다. 원한다면'polygon'을 사용할 수는 있지만 훨씬 복잡합니다. –