반응형
ggplot2로 원 그리기
어리석은 질문 일 수도 있지만 ggplot2 핸드북이나 "이모"google에서 답을 찾을 수 없었습니다.
중간 점과 지름이있는 경우 추가 레이어로 ggplot2를 사용하여 원을 어떻게 플로팅합니까? 당신의 도움을 주셔서 감사합니다.
새롭고 더 나은 옵션은 explicity 를 정의하는 ggforce 라는 확장 패키지를 활용합니다 geom_circle
.
그러나 후손을 위해 다음은 간단한 원 함수입니다.
circleFun <- function(center = c(0,0),diameter = 1, npoints = 100){
r = diameter / 2
tt <- seq(0,2*pi,length.out = npoints)
xx <- center[1] + r * cos(tt)
yy <- center[2] + r * sin(tt)
return(data.frame(x = xx, y = yy))
}
그리고 그것의 사용에 대한 데모 :
dat <- circleFun(c(1,-1),2.3,npoints = 100)
#geom_path will do open circles, geom_polygon will do filled circles
ggplot(dat,aes(x,y)) + geom_path()
ggplot2 >= 0.9
당신 과 함께 할 수도 있습니다
library(grid)
qplot(1:10, 1:10, geom="blank") +
annotation_custom(grob=circleGrob(r=unit(1,"npc")), xmin=2, xmax=4, ymin=4, ymax=6)
목적이 원에만 주석을 추가하는 것이라면 단순히 형상 "경로"와 함께 주석을 사용할 수 있습니다. 데이터 프레임이나 함수를 만들 필요가 없습니다.
#g is your plot
#r, xc, yc are the radius and center coordinates
g<-g+annotate("path",
x=xc+r*cos(seq(0,2*pi,length.out=100)),
y=yc+r*sin(seq(0,2*pi,length.out=100)))
안녕하세요 ggplot2 Google 그룹 의 다음 코드 가 유용 할 수 있습니다.
dat = data.frame(x=runif(1), y=runif(1))
ggplot() + scale_x_continuous(limits = c(0,1)) +
scale_y_continuous(limits = c(0,1))+
geom_point(aes(x=x, y=y), data=dat, size=50, shape=1, color="gold4")
생성하는 :
나는 그것이 당신의 목적에 맞는 커스텀 예제를 해킹하기 시작하기를 바랍니다.
후손을 위해 여기에는 채우기, 색상, 알파 및 크기를 지원하는 주석 및 geom_ribbon을 사용하는보다 유연한 원 솔루션이 있습니다.
gg_circle <- function(r, xc, yc, color="black", fill=NA, ...) {
x <- xc + r*cos(seq(0, pi, length.out=100))
ymax <- yc + r*sin(seq(0, pi, length.out=100))
ymin <- yc + r*sin(seq(0, -pi, length.out=100))
annotate("ribbon", x=x, ymin=ymin, ymax=ymax, color=color, fill=fill, ...)
}
square <- ggplot(data.frame(x=0:1, y=0:1), aes(x=x, y=y))
square + gg_circle(r=0.25, xc=0.5, yc=0.5)
square + gg_circle(r=0.25, xc=0.5, yc=0.5, color="blue", fill="red", alpha=0.2)
또한 이것을 시도하십시오,
ggplot() + geom_rect(aes(xmin=-1,ymin=-1,xmax=1,ymax=1), fill=NA) + coord_polar()
요점은 geom_point를 사용하지 않는 한 일부 좌표계의 원이 다른 좌표계의 원이 아닙니다. 데카르트 좌표로 종횡비 1을 보장 할 수 있습니다.
완전성을 위해 : ggforce
thomasp85 의 패키지 는geom_circle
참조 URL : https://stackoverflow.com/questions/6862742/draw-a-circle-with-ggplot2
반응형
'UFO ET IT' 카테고리의 다른 글
Eclipse에서 블록 선택 (0) | 2021.01.11 |
---|---|
jQuery를 사용하여 IE에서 선택 옵션 숨기기 (0) | 2021.01.11 |
텍스트가 넘칠 경우 다음 줄로 이동하려면 어떻게해야합니까? (0) | 2021.01.11 |
yyyymmdd에서 mm / dd / yyyy로 Excel 날짜 변환 (0) | 2021.01.11 |
먼저 EntityFramework 코드의 시각적 모델을 만드는 방법 (0) | 2021.01.11 |