本文介绍了用ggplot2画一个圆的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

也许这是一个愚蠢的问题,但我在 ggplot2 的手册中找不到答案,也找不到阿姨"google...

Maybe it is a silly question, but I couldn't find the answer in the handbook of ggplot2 nor with "aunt" google...

如果我有一个中点和一个直径,如何用 ggplot2 作为附加层绘制一个圆?感谢您的帮助.

How do I plot a circle with ggplot2 as an additional layer if I have a middle point and a diameter?Thanks for your help.

推荐答案

一个更新、更好的选择利用了一个名为 的扩展包ggforce 定义了一个明确的 geom_circle.

A newer, better option leverages an extension package called ggforce that defines an explicity geom_circle.

但为了后代,这里有一个简单的圆函数:

But for posterity's sake, here's a simple circle function:

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画一个圆的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!

07-31 02:15