相关疑难解决方法(0)

绘制不相交的圆圈

我试图绘制两个不相交的触摸圆圈,但我想我错过了一些非常基本的东西......

jpeg(file="test.jpg")
diam <- sqrt (2)
plot (c(-1,1), c(1,-1), xlim=c(-5,5), ylim=c(-5,5))

symbols (c(-1,1), c(1,-1), circles=c(diam,diam), add=TRUE, inches=FALSE)
dev.off()
Run Code Online (Sandbox Code Playgroud)

任何人都可以向我解释为什么这些圆圈重叠?

替代文字

r

18
推荐指数
1
解决办法
1443
查看次数

在R中绘制圆圈

我不知道为什么下面的代码没有给我完整的圆圈,只给出了部分内容.另外,我不知道如何在一个正方形内的圆圈或外面显示我的点,这两个点都以(0,0)为中心,r = 1,a = 2.

library("plotrix")
n<-1000
plot.new()
frame()
x<-runif(n,-1,1)
y<-runif(n,-1,1)
for (i in 1:n) { plot(x[i],y[i])}
draw.circle(0,0,1,nv=1000,border=NULL,col=NA,lty=1,lwd=1)
Run Code Online (Sandbox Code Playgroud)

这是输出在此输入图像描述

所以我把它固定到下面,当我得到100分时,图表看起来如下.为什么没有显示完整的圆圈?

plot(x,y)
draw.circle(0,0,1,nv=1000,border=NULL,col=NA,lty=1,lwd=1)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

所以多亏了费尔南多,我修复了这个情节,现在它看起来像这样,但我希望它的范围从(-1到1)为x,就像是y一样.xlim没用.你知道什么是错的吗?

magnitude = function(x, y) {
  stopifnot(isTRUE(all.equal(length(x),length(y))))
  return (sqrt(x^2 + y^2))
}
library("plotrix")
monte.carlo.pi<-function(n,draw=FALSE)
{
  circle.points<-0
  square.points<-0
  x<-runif(n,-1,1)
  y<-runif(n,-1,1)
  for (i in 1:n)
  {
    #if ((x[i])^2 + (y[i])^2 <=1)
    if (magnitude(x[i],y[i])<=1)
    {
      circle.points<-circle.points+1
      square.points<-square.points+1
    } else
    {
      square.points<-square.points+1
    }
  }
  if (draw==TRUE)
  {
    plot.new()
    frame()
    plot(x,y,asp=1,xlim=c(-1,1),ylim=c(-1,1))
    draw.circle(0,0,1,nv=1000,border=NULL,col=NA,lty=1,lwd=1)
    rect(-1,-1,1,1)
    return(4*circle.points / square.points)
  }
}
Run Code Online (Sandbox Code Playgroud)

并调用以下函数:

monte.carlo.pi(100,T)
Run Code Online (Sandbox Code Playgroud)

目前的情节如下: 在此输入图像描述

plot r

11
推荐指数
2
解决办法
4万
查看次数

标签 统计

r ×2

plot ×1