热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python代码画一个图形_如何用Python画各种著名数学图案|附图+代码

大数据文摘作品,转载具体要求见文末编译团队:Aileen,徐凌霄用Python绘制著名的数学图片或动画,展示数学中的算法魅力

大数据文摘作品,转载具体要求见文末

编译团队:Aileen,徐凌霄

用Python绘制著名的数学图片或动画,展示数学中的算法魅力。

本项⽬目将持续更更新,数学中有着太多有趣的事物可以⽤用代码去展示。  欢迎提出建议和参与建设!

后台回复“数学”查看完整代码集哦

Mandelbrot 集

代码&#xff1a;46 lines (34 sloc)  1.01 KB&#39;&#39;&#39;A fast Mandelbrot set wallpaper rendererreddit discussion: https://www.reddit.com/r/math/comments/2abwyt/smooth_colour_mandelbrot/&#39;&#39;&#39;import numpy as npfrom PIL import Imagefrom numba import jitMAXITERS &#61; 200RADIUS &#61; 100&#64;jitdef color(z, i):v &#61; np.log2(i &#43; 1 - np.log2(np.log2(abs(z)))) / 5if v <1.0:return v**4, v**2.5, velse:v &#61; max(0, 2-v)return v, v**1.5, v**3&#64;jitdef iterate(c):z &#61; 0jfor i in range(MAXITERS):if z.real*z.real &#43; z.imag*z.imag > RADIUS:return color(z, i)z &#61; z*z &#43; creturn 0, 0 ,0def main(xmin, xmax, ymin, ymax, width, height):x &#61; np.linspace(xmin, xmax, width)y &#61; np.linspace(ymax, ymin, height)z &#61; x[None, :] &#43; y[:, None]*1jred, green, blue &#61; np.asarray(np.frompyfunc(iterate, 1, 3)(z)).astype(np.float)img &#61; np.dstack((red, green, blue))Image.fromarray(np.uint8(img*255)).save(&#39;mandelbrot.png&#39;)if __name__ &#61;&#61; &#39;__main__&#39;:main(-2.1, 0.8, -1.16, 1.16, 1200, 960)

多米诺洗牌算法

代码链接&#xff1a;https://github.com/neozhaoliang/pywonderland/tree/master/src/domino

正二十面体万花筒

代码&#xff1a;53 lines (40 sloc)  1.24 KB&#39;&#39;&#39;A kaleidoscope pattern with icosahedral symmetry.&#39;&#39;&#39;import numpy as npfrom PIL import Imagefrom matplotlib.colors import hsv_to_rgbdef Klein(z):&#39;&#39;&#39;Klein&#39;s j-function&#39;&#39;&#39;return 1728 * (z * (z**10 &#43; 11 * z**5 - 1))**5 / \(-(z**20 &#43; 1) &#43; 228 * (z**15 - z**5) - 494 * z**10)**3def RiemannSphere(z):&#39;&#39;&#39;    map the complex plane to Riemann&#39;s sphere via stereographic projection    &#39;&#39;&#39;t &#61; 1 &#43; z.real*z.real &#43; z.imag*z.imagreturn 2*z.real/t, 2*z.imag/t, 2/t-1def Mobius(z):&#39;&#39;&#39;    distort the result image by a mobius transformation    &#39;&#39;&#39;return (z - 20)/(3*z &#43; 1j)def main(imgsize):x &#61; np.linspace(-6, 6, imgsize)y &#61; np.linspace(6, -6, imgsize)z &#61; x[None, :] &#43; y[:, None]*1jz &#61; RiemannSphere(Klein(Mobius(Klein(z))))# define colors in hsv spaceH &#61; np.sin(z[0]*np.pi)**2S &#61; np.cos(z[1]*np.pi)**2V &#61; abs(np.sin(z[2]*np.pi) * np.cos(z[2]*np.pi))**0.2HSV &#61; np.dstack((H, S, V))# transform to rgb spaceimg &#61; hsv_to_rgb(HSV)Image.fromarray(np.uint8(img*255)).save(&#39;kaleidoscope.png&#39;)if __name__ &#61;&#61; &#39;__main__&#39;:import timestart &#61; time.time()main(imgsize&#61;800)end &#61; time.time()print(&#39;runtime: {:3f} seconds&#39;.format(end - start))

Newton 迭代分形

代码&#xff1a;46 lines (35 sloc)  1.05 KBimport numpy as npimport matplotlib.pyplot as pltfrom numba import jit# define functions manually, do not use numpy&#39;s poly1d funciton!&#64;jit(&#39;complex64(complex64)&#39;, nopython&#61;True)def f(z):# z*z*z is faster than z**3return z*z*z - 1&#64;jit(&#39;complex64(complex64)&#39;, nopython&#61;True)def df(z):return 3*z*z&#64;jit(&#39;float64(complex64)&#39;, nopython&#61;True)def iterate(z):num &#61; 0while abs(f(z)) > 1e-4:w &#61; z - f(z)/df(z)num &#43;&#61; np.exp(-1/abs(w-z))z &#61; wreturn numdef render(imgsize):x &#61; np.linspace(-1, 1, imgsize)y &#61; np.linspace(1, -1, imgsize)z &#61; x[None, :] &#43; y[:, None] * 1jimg &#61; np.frompyfunc(iterate, 1, 1)(z).astype(np.float)fig &#61; plt.figure(figsize&#61;(imgsize/100.0, imgsize/100.0), dpi&#61;100)ax &#61; fig.add_axes([0, 0, 1, 1], aspect&#61;1)ax.axis(&#39;off&#39;)ax.imshow(img, cmap&#61;&#39;hot&#39;)fig.savefig(&#39;newton.png&#39;)if __name__ &#61;&#61; &#39;__main__&#39;:import timestart &#61; time.time()render(imgsize&#61;400)end &#61; time.time()print(&#39;runtime: {:03f} seconds&#39;.format(end - start))

李代数E8 的根系

代码链接&#xff1a;https://github.com/neozhaoliang/pywonderland/blob/master/src/misc/e8.py



推荐阅读
  • [大整数乘法] java代码实现
    本文介绍了使用java代码实现大整数乘法的过程,同时也涉及到大整数加法和大整数减法的计算方法。通过分治算法来提高计算效率,并对算法的时间复杂度进行了研究。详细代码实现请参考文章链接。 ... [详细]
  • 开源Keras Faster RCNN模型介绍及代码结构解析
    本文介绍了开源Keras Faster RCNN模型的环境需求和代码结构,包括FasterRCNN源码解析、RPN与classifier定义、data_generators.py文件的功能以及损失计算。同时提供了该模型的开源地址和安装所需的库。 ... [详细]
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 展开全部下面的代码是创建一个立方体Thisexamplescreatesanddisplaysasimplebox.#Thefirstlineloadstheinit_disp ... [详细]
  • Go GUIlxn/walk 学习3.菜单栏和工具栏的具体实现
    本文介绍了使用Go语言的GUI库lxn/walk实现菜单栏和工具栏的具体方法,包括消息窗口的产生、文件放置动作响应和提示框的应用。部分代码来自上一篇博客和lxn/walk官方示例。文章提供了学习GUI开发的实际案例和代码示例。 ... [详细]
  • 本文介绍了机器学习手册中关于日期和时区操作的重要性以及其在实际应用中的作用。文章以一个故事为背景,描述了学童们面对老先生的教导时的反应,以及上官如在这个过程中的表现。同时,文章也提到了顾慎为对上官如的恨意以及他们之间的矛盾源于早年的结局。最后,文章强调了日期和时区操作在机器学习中的重要性,并指出了其在实际应用中的作用和意义。 ... [详细]
  • WhenIusepythontoapplythepymysqlmoduletoaddafieldtoatableinthemysqldatabase,itdo ... [详细]
  • Python爬虫中使用正则表达式的方法和注意事项
    本文介绍了在Python爬虫中使用正则表达式的方法和注意事项。首先解释了爬虫的四个主要步骤,并强调了正则表达式在数据处理中的重要性。然后详细介绍了正则表达式的概念和用法,包括检索、替换和过滤文本的功能。同时提到了re模块是Python内置的用于处理正则表达式的模块,并给出了使用正则表达式时需要注意的特殊字符转义和原始字符串的用法。通过本文的学习,读者可以掌握在Python爬虫中使用正则表达式的技巧和方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 合并列值-合并为一列问题需求:createtabletab(Aint,Bint,Cint)inserttabselect1,2,3unionallsel ... [详细]
  • 如何使用Python从工程图图像中提取底部的方法?
    本文介绍了使用Python从工程图图像中提取底部的方法。首先将输入图片转换为灰度图像,并进行高斯模糊和阈值处理。然后通过填充潜在的轮廓以及使用轮廓逼近和矩形核进行过滤,去除非矩形轮廓。最后通过查找轮廓并使用轮廓近似、宽高比和轮廓区域进行过滤,隔离所需的底部轮廓,并使用Numpy切片提取底部模板部分。 ... [详细]
  • 本文讨论了一个关于cuowu类的问题,作者在使用cuowu类时遇到了错误提示和使用AdjustmentListener的问题。文章提供了16个解决方案,并给出了两个可能导致错误的原因。 ... [详细]
  • EzPP 0.2发布,新增YAML布局渲染功能
    EzPP发布了0.2.1版本,新增了YAML布局渲染功能,可以将YAML文件渲染为图片,并且可以复用YAML作为模版,通过传递不同参数生成不同的图片。这个功能可以用于绘制Logo、封面或其他图片,让用户不需要安装或卸载Photoshop。文章还提供了一个入门例子,介绍了使用ezpp的基本渲染方法,以及如何使用canvas、text类元素、自定义字体等。 ... [详细]
author-avatar
EIght_16
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有