我在

Python 3.3中使用matplotlib.我有一个动画的2D和3D窗口,我在上面绘制点.这些点代表对象,但不确定它们实际上是在那里.所以我想围绕这些点绘制一个圆圈来显示不确定性.这种不确定性是变化的,所以底线:我想在具有可变中心和可变半径的2D动画中绘制多个(可能是0,可能是100)圆周.

我试过散布. Scatter看起来非常有前景,直到我调整屏幕大小:散点的大小以像素为单位,与轴的大小无关.知道我怎么能这样做吗?

我尝试了以下分散代码:

#In the init

self.circles = self.ax.scatter([],[],[],c = 'b',alpha=0.6)

#In the animate function

self.circles.set_offsets([[10],[15]])

self.circles._sizes = [2000]

中心点是正确的,在x = 10和y = 15时.但是大小是以像素为单位的大小,与轴无关.在这种情况下,我预计圆圈会达到x = 10和y = 20015.但事实并非如此.

当我调整窗口大小时,这会成为一个问题.

最佳答案 绘图集合更快,所以我修改了scatter()返回的PathCollection对象的draw()函数.新的draw()使用transData来计算每个圆的比例,它使用每个圆的大小作为直径.

import pylab as pl

import numpy as np

from matplotlib.collections import Collection

from matplotlib import transforms

import matplotlib.animation as animation

fig = pl.figure()

N = 40

x, y = np.random.rand(2, N)

color = np.random.rand(N)

r = np.random.rand(N) * 0.05 + 0.05

c = pl.scatter(x, y, s=r, c=color, alpha=0.5, animated=True)

pl.gca().set_aspect("equal")

def draw(self, renderer):

if self._sizes is not None:

m = self.axes.transData.get_matrix()

self._transforms = [

transforms.Affine2D().scale(m[0, 0]*x, m[1, 1]*x)

for x in self._sizes]

return Collection.draw(self, renderer)

c.draw = lambda renderer:draw(c, renderer)

def update_loc(n):

global x2, y2, x, y

n = n % 50

if n == 0:

x2, y2 = np.random.rand(2, N)

x += (x2 - x) * 0.1

y += (y2 - y) * 0.1

c.set_offsets(np.c_[x, y])

return c,

ani = animation.FuncAnimation(fig, update_loc, 2500, interval=50, blit=True)

pl.show()

这是动画的框架:

python绘制动态圆_python – 在2D动画上绘制可变大小和位置的圆圈相关推荐

  1. python画旋转圆_Python使用PyQt界面库绘制不停旋转的圆控件

    Python是一种面向对象的高级动态编程语言,相对于其它如C/C++语言,具有上手快.代码量少.开发效率高等特点,Qt是跨平台的C++图形用户界面应用程序开发框架,是当前主流的GUI开发工具之一,其在 ...

  2. python简单动态图_python动态图的绘制和保存

    前言 这段时间要做一个涉及排队论的数学建模,需要动态绘图.建好了模,却没想到在原以为简单的绘图上耗费了我大量时间.原因在于用python作动态绘图的参考资料过于琐碎.因此在我费了九牛二虎之力终于实现动 ...

  3. python函数画圆_python圆形_python圆形绘制_python圆形函数 - 云+社区 - 腾讯云

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 今天上课老师布置了一道pthon的课题,关键是和数学有关数学又是我的弱项头有点小 ...

  4. 数据可视化: matplotlib绘制动态图及3维动画

    动画可以有趣地展示某种现象.相比于静态图表,人们更容易被动画和交互式的图表所吸引.在描绘时间序列数据时,动画更有意义,例如多年来股票价格的波动,过去十年气候的季节性变化和和趋势,因为我们可以看到特定参 ...

  5. python怎么计算圆_python计算圆心

    广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! 导语:这几天,小编学习到了一个好玩的摄像头图像圆心计算的程序代码. 另外,小编t ...

  6. 用python画面积图_Python笔记:用matplotlib绘制面积图

    用pyecharts绘制出来的面积图.圆环图太有个性了,未免感觉有点"高处不胜寒".今晚虽然休息,但继用matplotlib绘制折线图之后,我又心血来潮地想用matplotlib来 ...

  7. python 为什么动态语言_Python动态语言

    python 说Python是动态语言,是由于Python可以在代码运行中可以做更改,但是像C.Java之类的需要编译的语言,由于做过编译就不可以做修改了,所以是静态语言.但是像Python.PHP. ...

  8. python是动态语言_Python是动态语言:动态添加或删除属性、方法

    Python是动态语言:动态编辑属性.动态编辑方法 1.运行过程中给对象绑定.删除属性 实例: class Person(): def __init__(self,name): self.name=n ...

  9. python制作动态时钟_python+pygame制作一个可自定义的动态时钟和详解

    #第1步:导出模块 importsys, random, math, pygamefrom pygame.locals import * from datetime importdatetime, d ...

最新文章

  1. DevExpress.XtraReports打印
  2. IPMSM弱磁控制策略
  3. 线程方法destroy()和stop(Throwable)在JDK 11中删除
  4. webbrowser实现input tab事件_如何合理构造一个Uploader工具类(设计到实现)
  5. mpi4py linux例子,python-3.x – mpi4py中的共享内存
  6. 关于二维数组取地址加以或减一解引用问题
  7. 宽带连接不上,拨号宽带连接的创建。
  8. ajax异步加载网页爬虫
  9. iphone6出信号 无服务器,苹果6手机无服务(非常见故障点)维修
  10. 驱动INF文件解析和 为自己的设备安装指定驱动
  11. 计算机mac地址设置路由器,路由器设置:如何查看电脑/手机的MAC地址?
  12. PDF转换器可以做到PDF转Office,TXT,HTM,PDF文件;PDF合并拆分,压缩,加密解密!
  13. 【mmdetection】对VOC格式的数据集进行测试
  14. OCR识别新能源车牌的原理
  15. 上海市计算机应用基础答案,计算机应用基础10统考(附答案)
  16. 个人网站必备的 10 个开源后台管理UI库
  17. 项目1在线交流平台-7.构建安全高效的企业服务-2.使用Security自定义社区网页认证与授权
  18. 关于单向TSP旅行商问题/修路问题/最小生成树问题的求解讨论
  19. 国外手游公司老板们如何开发游戏?
  20. JS–for循环嵌套

热门文章

  1. 房地产行业唯美大气工作总结汇报PPT模板
  2. Linux中安装和使用Translate Shell
  3. 微信小程序开发实战2 微信小程序编程基础
  4. 光通讯汉枫模块与盒子汉枫模块的设置
  5. BZOJ 4033: [HAOI2015]T1
  6. X射线食品检测仪市场现状及未来发展趋势
  7. polyspace和matlab的关系,关于Polyspace应用到基于模型的设计可能性分析和介绍
  8. 【历史上的今天】2 月 27 日:UML 之父出生;微软宣布全球望远镜计划;苹果停止支持 Newton OS
  9. [转]女孩,看完之后请别流下幸福的眼泪(图组)
  10. nginx启动后访问的是nginx主页而不是自己的页面、使用以前虚拟机配置的linux系统并把虚拟网络修改回来,但是链接超时的问题解决办法