matplotlib提供了交互操作的功能,比如,只要绑定button_press_event,就可以在点击图像时,触发相应的事件。

import matplotlib.pyplot as plt
import numpy as np
from matplotlib import cm
import time
def OnMouse(evt):x,y = evt.xdata, evt.ydata #xdata,ydata即当前坐标z = genZ([-2,2,-2,2],800,800)julia = getJulia(z,x+y*1j,40)jFig,jAx = plt.subplots()plt.imshow(julia, cmap=cm.jet)plt.gca().set_axis_off()plt.show()# 用于生成Julia集
def getJulia(z,c,n,n0=0,m=2):t = time.time()c = np.zeros_like(z)+cout = abs(z)for i in range(n0,n0+n):absz = abs(z)z[absz>m]=0c[absz>m]=0out[absz>m]=iz = z*z + cprint("time:",time.time()-t)return outdef genZ(axis,nx,ny):x0,x1,y0,y1 = axisx = np.linspace(x0,x1,nx)y = np.linspace(y0,y1,ny)real, img = np.meshgrid(x,y)z = real + img*1jreturn z

其中getJuliagetZ的解释可见python绘制动态Julia集,超炫酷

当然,众所周知,matplotlib中已经绑定了鼠标操作,故而首先要取消已经绑定的点击事件

def drawInter(img,axis):fig, ax = plt.subplots()plt.imshow(mBrot, cmap=cm.jet, extent=axis)plt.gca().set_axis_off()#取消链接点击事件fig.canvas.mpl_disconnect(fig.canvas.manager.key_press_handler_id)#将点击和OnMouse链接起来fig.canvas.mpl_connect('button_press_event', OnMouse)plt.show()
n = 1000
axis = [-2,1,-1.5,1.5]
z = genZ(axis,1000,1000)
mBrot = getJulia(z,z,50)
drawInter(mBrot,axis)

这样,只要点击曼德勃罗集上的任意一点,就会绘制该点的Julia集。结果如图所示


此前曾经写过一个同名博客,但由于直接写到了类里面,所以有朋友吐槽代码太长

python交互绘制Julia集

Python交互绘制Julia集相关推荐

  1. python分形几何_使用 Python 绘制分形: Koch 曲线、Julia 集、Mandelbrot 集

    目录 1. Koch曲线 瑞典数学家Helge von Koch,在1904年发表的"从初等几何构造的一条没有切线的连续曲线"的论文中提出Korch曲线.它的描述如下:指定一条线段 ...

  2. python绘制动态Julia集,超炫酷

    Julia集 此Julia非彼Julia,指的是对于某复数ccc,使得迭代式f(z)=z2+cf(z)=z^2+cf(z)=z2+c收敛的复数zzz的集合.例如,当c=0c=0c=0时,那么其收敛区间 ...

  3. Python:实现Julia集算法(附完整源码)

    Python:实现Julia集算法 import warnings from collections.abc import Callable from typing import Anyimport ...

  4. python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)

    python matplotlib 绘制3D图表 文章目录 1. 绘制3D柱状图 2. 绘制3D曲面图 ① 示例1 ② 示例2 3.绘制3D散点图 4. 绘制3D曲线图       ʚʕ̯•͡˔•̯᷅ ...

  5. 【Python入门】Turtle海龟库:利用海龟画笔交互绘制笑脸或花朵

    绘制可爱的笑脸 功能要求 使用海龟绘图画可爱的笑脸 说明:笑脸主要由三个圆形和一个弧线组成.笑脸的脸为黄色的圆形,眼睛为两个黑色圆形,嘴为黑色的弧线. 实例代码 import turtlet = tu ...

  6. 再见 Python,Hello Julia!

    作者 | Rhea Moutafis 译者 | 苏本如,责编 | 夕颜 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 随着Python的停滞不前,一个新的热门竞争对 ...

  7. Python matplotlib 绘制量场图

    复习回顾 matplotlib 是基于Python语言的开源项目,pyplot提供一系列绘制2D图形的方法.随着版本的迭代,matplotlib 模块也支持绘制3D图形mplot3d工具包,制作动态图 ...

  8. Redis数据操作和与Python交互

    Redis数据操作和与Python交互 文章目录 Redis数据操作和与Python交互 一.数据结构 1.String 字符串类型 2.Hash (哈希) 3.列表 4.Set 集合 5.zset ...

  9. 大佬 Python 对阵新秀 Julia ,谁能问鼎机器学习和数据科学?

    点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! [CSDN 编者按]在数据科学领域,你最常用的编程语言是哪种?对此,不同职业背景下的开发者答 ...

最新文章

  1. RabbitMQ:入门(三)——RabbitMQ用户管理、角色管理与权限管理
  2. pandas最大的时间间隔_pandas生成时间列表(某段连续时间或者固定间隔时间段)(示例代码)...
  3. s3c2410下利用TL16C554扩展4个全功能串口
  4. ThreadLocal小记
  5. 漫画算法:什么是一致性哈希?
  6. 设计和实时视图不一样_三室两厅家装设计,如何打造出不一样的感觉?
  7. C++总结笔记(二)——指针
  8. gentoo linux 分区_小白安装Gentoo Linux操作系统——磁盘分区
  9. Effective Java -- 思维导图
  10. 文件的读操作 c# 1614526130
  11. Apache本地环境部署
  12. 机器学习:样本去中心化目的
  13. [转帖]golang操作mysql使用总结
  14. 百度地图点击城市的出现下钻
  15. 高效数字音频功率放大器NTP8928
  16. Trun On ACID(Detlete Update) On Hive
  17. python快递分拣程序怎么写_分拣中心分拣作业流程
  18. android 充电电压过压保护值修改
  19. 100 Most Brilliant Tech Hacks You Need To Know Right Now
  20. Python制作回合制手游外挂简单教程(中)

热门文章

  1. 第三届艺星超级品牌日钜献·世界名曲音乐会,全网直播!
  2. diagnosing error in object detectors 浅析
  3. 计算机类专业教指委委员名单,教育部高等学校计算机类专业教学指导委员会举办《高校计算机系统能力培养教学研讨会》...
  4. Linux系统引导过程及排除启动故障
  5. DMM6500+Keithley6517B/6514纳米发电机测试软件
  6. 友情的目的和作为目的的友情
  7. OpenFOAM 雾化模型头文件信息摘录
  8. HTML的相关标记和属性
  9. nas和san网络存储区别_存储区域网络或SAN
  10. 爬取虎扑社区,存入MongoDB数据库