Python交互绘制Julia集
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
其中getJulia
和getZ
的解释可见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集相关推荐
- python分形几何_使用 Python 绘制分形: Koch 曲线、Julia 集、Mandelbrot 集
目录 1. Koch曲线 瑞典数学家Helge von Koch,在1904年发表的"从初等几何构造的一条没有切线的连续曲线"的论文中提出Korch曲线.它的描述如下:指定一条线段 ...
- python绘制动态Julia集,超炫酷
Julia集 此Julia非彼Julia,指的是对于某复数ccc,使得迭代式f(z)=z2+cf(z)=z^2+cf(z)=z2+c收敛的复数zzz的集合.例如,当c=0c=0c=0时,那么其收敛区间 ...
- Python:实现Julia集算法(附完整源码)
Python:实现Julia集算法 import warnings from collections.abc import Callable from typing import Anyimport ...
- python matplotlib绘制 3D图像专题 (三维柱状图、曲面图、散点图、曲线图合集)
python matplotlib 绘制3D图表 文章目录 1. 绘制3D柱状图 2. 绘制3D曲面图 ① 示例1 ② 示例2 3.绘制3D散点图 4. 绘制3D曲线图 ʚʕ̯•͡˔•̯᷅ ...
- 【Python入门】Turtle海龟库:利用海龟画笔交互绘制笑脸或花朵
绘制可爱的笑脸 功能要求 使用海龟绘图画可爱的笑脸 说明:笑脸主要由三个圆形和一个弧线组成.笑脸的脸为黄色的圆形,眼睛为两个黑色圆形,嘴为黑色的弧线. 实例代码 import turtlet = tu ...
- 再见 Python,Hello Julia!
作者 | Rhea Moutafis 译者 | 苏本如,责编 | 夕颜 头图 | CSDN 下载自视觉中国 出品 | CSDN(ID:CSDNnews) 随着Python的停滞不前,一个新的热门竞争对 ...
- Python matplotlib 绘制量场图
复习回顾 matplotlib 是基于Python语言的开源项目,pyplot提供一系列绘制2D图形的方法.随着版本的迭代,matplotlib 模块也支持绘制3D图形mplot3d工具包,制作动态图 ...
- Redis数据操作和与Python交互
Redis数据操作和与Python交互 文章目录 Redis数据操作和与Python交互 一.数据结构 1.String 字符串类型 2.Hash (哈希) 3.列表 4.Set 集合 5.zset ...
- 大佬 Python 对阵新秀 Julia ,谁能问鼎机器学习和数据科学?
点击上方"CSDN",选择"置顶公众号" 关键时刻,第一时间送达! [CSDN 编者按]在数据科学领域,你最常用的编程语言是哪种?对此,不同职业背景下的开发者答 ...
最新文章
- RabbitMQ:入门(三)——RabbitMQ用户管理、角色管理与权限管理
- pandas最大的时间间隔_pandas生成时间列表(某段连续时间或者固定间隔时间段)(示例代码)...
- s3c2410下利用TL16C554扩展4个全功能串口
- ThreadLocal小记
- 漫画算法:什么是一致性哈希?
- 设计和实时视图不一样_三室两厅家装设计,如何打造出不一样的感觉?
- C++总结笔记(二)——指针
- gentoo linux 分区_小白安装Gentoo Linux操作系统——磁盘分区
- Effective Java -- 思维导图
- 文件的读操作 c# 1614526130
- Apache本地环境部署
- 机器学习:样本去中心化目的
- [转帖]golang操作mysql使用总结
- 百度地图点击城市的出现下钻
- 高效数字音频功率放大器NTP8928
- Trun On ACID(Detlete Update) On Hive
- python快递分拣程序怎么写_分拣中心分拣作业流程
- android 充电电压过压保护值修改
- 100 Most Brilliant Tech Hacks You Need To Know Right Now
- Python制作回合制手游外挂简单教程(中)
热门文章
- 第三届艺星超级品牌日钜献·世界名曲音乐会,全网直播!
- diagnosing error in object detectors 浅析
- 计算机类专业教指委委员名单,教育部高等学校计算机类专业教学指导委员会举办《高校计算机系统能力培养教学研讨会》...
- Linux系统引导过程及排除启动故障
- DMM6500+Keithley6517B/6514纳米发电机测试软件
- 友情的目的和作为目的的友情
- OpenFOAM 雾化模型头文件信息摘录
- HTML的相关标记和属性
- nas和san网络存储区别_存储区域网络或SAN
- 爬取虎扑社区,存入MongoDB数据库