复值函数绘图工具

cplot的Python项目详细描述


cplot

使用样式绘制复杂值函数。

CircleCIcodecovCode style: blackPyPi VersionGitHub stars

cplot有助于以直观的方式绘制复杂值函数。这个 一般的想法是将绝对值映射到亮度和复杂参数(即 “角度”)表示颜色的色度。这遵循domain coloring方法,也由 John D. Cook 还有伊莱亚斯·韦格特在书中的描述。

使用安装

pip3 install cplot --user

并用作

importcplotimportnumpycplot.show(numpy.tan,-5,+5,-5,+5,100,100)cplot.save_fig("out.png",numpy.tan,-5,+5,-5,+5,100,100)cplot.save_img("out.png",numpy.tan,-5,+5,-5,+5,100,100)# There is a tripcolor function as well for triangulated 2D domains# cplot.tripcolor(triang, z)# The function get_srgb1 returns the SRGB1 triple for every complex input value.# (Accepts arrays, too.)z=2+5jval=cplot.get_srgb1(z)

所有函数都有可选参数(带默认值)

alpha=1# >= 0colorspace="cam16"# "cielab", "hsl"
  • alpha可用于调整颜色的使用。小于1的值将添加更多颜色 有助于分离根和杆(仍然是黑白的, 分别)。alpha=0完全忽略f(z)的大小。

  • colorspace可以设置为hsl,以获得常见的完全饱和、充满活力的 颜色。这通常是个坏主意,因为它会创建与 与基础数据。来自Wikipedia

    Since the HSL color space is not perceptually uniform, one can see streaks of perceived brightness at yellow, cyan, and magenta (even though their absolute values are the same as red, green, and blue) and a halo around L = 1 / 2 . Use of the Lab color space corrects this, making the images more accurate, but also makes them more drab/pastel.

    默认为^{}; 非常相似的是"cielab"(这里没有显示)。

考虑测试函数(z ** 2 - 1) * (z - 2 - 1j) ** 2 / (z ** 2 + 2 + 2j)

^{}^{}^{}

所选择的表示方式使得

  • 围绕0的值是black
  • infinity周围的值是white
  • +1周围的值是green
  • 围绕-1的值是deep purple
  • +i周围的值是blue
  • -i周围的值是orange

(与下面的z1参考图比较。)

有了这个,就很容易看出一个函数有非常小和非常大的值,并且 零点和极点的多重性通过计数色轮立即被识别 绕过一个黑色或白色的点。

图库

所有绘图都是使用默认设置创建的。

^{}^{}^{}
^{}^{}^{}
^{}^{}^{}
^{}^{}^{}
^{}^{}^{}
^{}^{}^{}
^{}^{}^{}
^{}^{}^{}

测试

要运行cplot单元测试,请签出此存储库并键入

pytest

许可证

cplot在MIT license下发布。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
基于Java的遗传算法确定最优交易行为   java改型2.0无法解析Json嵌套对象   java在数组中查找最大额定值(数字),我们不能跳过数组中的一个或多个连续数字   java在spring boot中从命令行设置活动概要文件和配置位置   JavaAxis2:传输错误:404错误:未找到帮助理解其真正含义   java使用Play2WAR和Play2.2.1   java理解函数运算符:Lambda   在代理java后面读取https网页数据   java应用程序。Android单元测试中的类mock   java为什么onClick布局XML引用的方法需要是公共的?   从SMTLIB2文件解析的java显示声明   java重写给定的类以使用组合而不是继承   HTMLUnit和Java:NoSuchMethodException:createDefaultSSLContext()   java如何使用Spring和ThymeLeaf从前端正确更新后端中的对象?   来自init()Java的方法调用   使用cellrendering从数据库向JTable动态添加数据后,java无法使用JTable执行排序操作   java Android Studio 1.5.1。渲染错误(浮动操作按钮)   web服务如何使用UsenameToken和PasswordDigest为JAVA中的SOAP客户端附加wsse安全头   java为什么要在局部变量和myApplicationClass中同时删除“ArrayList.remove”?