绘制包含 80% (x, y) 点的圆

2024-02-10

我有一个二维数组 (x, y) 的点,我想绘制一个包含该点 80% 的圆,并且我想知道所得圆的半径。有没有办法用 python 来做到这一点?

我一直在寻找一种方法来做到这一点,但没有成功。我很抱歉没有尝试,但我完全迷失了在不给圆半径的情况下取 80% 的条件。

Update:

我尝试过以下方法:

import matplotlib.pyplot as plt

x=[1, 1.15, 1.23, 0.92, 1.31, 1.18, 1.27, 1.07, 3, 3.2]

y=[1.17, 0.95, 1.04, 1.32, 1, 1.22, 1.28, 0.99, 1, 1.2]

plt.plot(x, y, 'bo')
circle=plt.Circle((1.1, 1.12), 0.2, color='g', fill=False)
fig = plt.gcf()
fig.gca().add_artist(circle)
plt.axis([0, 3.5, 0, 3.5])
plt.show()

这是我想要获得的情节:

在这个例子中,我有 10 个点,圆是内部有 8 个点的最小圆。我已经通过肉眼完成了这个例子,但我想要的是:给定 x 和 y,获取与至少 80% 的点在其内部的条件相匹配的圆的参数(中心位置和半径),即how 必须是包含至少 80% 点的最小圆。这可能吗?


正如其他人所说,您可以绘制许多不同的圆圈以获得所需的结果。但一种快速而肮脏的方法可能是:

import numpy as np
import matplotlib.pyplot as plt

# generate some random points
n = 1000
x = 4 * np.random.randn(n) + 15
y = 2 * np.random.randn(n) + 10

# somehow compute center of cloud, use e.g. medium or mean
x0 = np.median(x)
y0 = np.median(y)

# compute radius
r = np.sqrt((x - x0)**2 + (y - y0)**2)
t = 80 # percent
r0 = np.percentile(r, t)
n_within = (r < r0).sum()

# make plot    
plt.plot(x, y, '.')
circle = plt.Circle((x0, y0), r0, color='r', fill=False)
plt.gca().add_artist(circle)
plt.title('Found center at ({:.2f}, {:.2f})\n'
          '{}% radius is {:.2f}\n'
          '{} / {} points within circle'.format(
          x0, y0, t, r0, n_within, n))
plt.axis([0, 30, 0, 20])
plt.show()

Result:

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

绘制包含 80% (x, y) 点的圆 的相关文章

随机推荐

  • 使用 python 请求的网站访问不计入谷歌分析

    使用 python 请求的网站访问不计入谷歌实时分析 我正在使用 python requests 模块 谷歌计算访问次数 但在谷歌分析实时中未找到 活跃用户 我的代码如下 import requests import time agent
  • 我想在我的电脑上安装 nuxt js 但每次都会显示错误

    我想在我的电脑上安装 nuxt js 但每次都会显示错误 npm init nuxt app 项目名称 create nuxt app 不被识别为内部或外部命令 可运行的程序或批处理文件 npm 错误 代码1 npm 错误 路径 C Use
  • 仅在设计时更新默认值

    我想仅在设计时更新链接到公共属性的私有变量的默认值 如果可能的话 TMyComp class TComponent private FColumnWidth Integer FColumnWidthDef Integer protected
  • .NET 中带有 Unity IOC 容器的 RabbitMQ

    我使用 Unity App Block 作为 WCF 项目服务层的 IOC 容器 使用 Unity WCF 库将其插入到每个 WCF 服务中 效果非常好 我最近将 RabbitMQ 引入了我的服务层 目前我正在使用 using 块来连接并添
  • 如何使用 SVN 使某些开发人员只显示某些文件夹

    我有一个包含一堆文件夹的存储库 我希望某些开发人员在检出存储库时只能获取其中两个或三个文件夹 如何使文件夹默认不显示 然后仅在我想要授予访问权限时添加它们 我使用 VisualSVN 作为 SVN 服务器 我所做的就是授予对顶层的读取访问权
  • 使用 RPostgreSQL 进行 UTF-8 / Unicode 文本编码

    我在直接链接到 PostgreSQL 数据库的 Windows 计算机上运行 R 我没有使用 RODBC 我的数据库采用 UTF 8 编码 由以下 R 命令确认 dbGetQuery con SHOW CLIENT ENCODING cli
  • 如何获取嵌入Flash影片的URL?

    今天我试图获取我的 Flash 电影所在的 URL I found 这里有一个类似的问题 https stackoverflow com questions 396412 how can my flash app determine its
  • Apache 在 URL 中隐藏查询字符串但保持 URL 正常工作

    我有两种类型的 URL 但它们可以在查询字符串之后包含任何内容 因为我们有 1000 个 URL 帖子 两者都有 id 我希望隐藏 删除它 但页面仍然加载 这些页面是 WordPress 中的自定义 slugs 我没有在 Apache 2
  • 将 boost::array 转换为带参数的函数 (const float (&arr)[12])

    我有一个boost array
  • R 中 PCA 的结果载荷

    在R中进行PCA时 p lt princomp iris 1 4 我通过以下两种方法得出不同Component的系数 IrisLoading lt p loadings 1 2 methods1 use the fist two Comp
  • 在大型数据集上使用 grep 或 fgrep 的循环速度非常慢

    我正在尝试做一些非常简单的事情 grep 从列表中 对目录中的文件进行精确匹配的字符串 try grep each line from the files for i in cat data datafile do LOOK echo i
  • 为什么根窗口小部件与窗口的大小不同?

    我正在尝试使用自定义小部件GridLayout 但结果总是在角落里出现一个很小的网格 而不是在整个窗口中扩展的网格 示例代码 import kivy kivy require 1 5 1 from kivy app import App f
  • 到大端还是小端? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • ReactDOM.render 放在 React 中的什么位置

    这里是入门 https facebook github io react docs getting started htmlReact的例子 在例子中 下面的代码片段是单独的main js file ReactDOM render h1 H
  • 从委托访问列表视图 currentIndex

    我有一个QMLListView委托从另一个文件加载其组件的地方 单击委托项目时 我想更新ListView CurrentIndex and highlight所选项目 当我明确设置时它有效id of the ListView 但是因为我想使
  • Scala 2.13 视图与 LazyList

    我正在将一个项目从 Scala 2 12 1 迁移到 2 13 6 并发现SeqView flatMap现在返回一个View 其中没有distinct方法 因此 我有一段代码不再编译 val nodes debts view flatMap
  • 如何以正确的类型安全方式迭代记录键?

    让我们针对一些属性构建一个示例记录 type HumanProp weight height age type Human Record
  • 如何获取光标下的单词?

    假设有一个mousestop事件附加到整个文档 找出确切事件的最佳方法是什么word当鼠标停止移动时 在光标下方 如果有任何文本 我可以从事件处理程序获取底层 jQuery 元素 document elementFromPoint e cl
  • MATLAB:在子图中绘制/保存网格函数的 X-Y 视图

    正如标题所示 我试图将网格函数的 2 变量切片 例如 作为 jpg 保存为子图 我想使用 m 文件来执行此操作 因为我有很多要生成的图 我已经弄清楚如何在他们自己的图形上绘制视图 但我无法让它们正确地绘制为图形中的子图 为了说明我的意思 以
  • 绘制包含 80% (x, y) 点的圆

    我有一个二维数组 x y 的点 我想绘制一个包含该点 80 的圆 并且我想知道所得圆的半径 有没有办法用 python 来做到这一点 我一直在寻找一种方法来做到这一点 但没有成功 我很抱歉没有尝试 但我完全迷失了在不给圆半径的情况下取 80