书籍详情
《Python绘图指南――分形与数据可视化》[52M]百度网盘|亲测有效|pdf下载
  • Python绘图指南――分形与数据可视化

  • 出版社:电子工业出版社
  • 出版时间:2021-08
  • 热度:4375
  • 上架时间:2024-06-30 09:08:33
  • 价格:0.0
书籍下载
书籍预览
免责声明

本站支持尊重有效期内的版权/著作权,所有的资源均来自于互联网网友分享或网盘资源,一旦发现资源涉及侵权,将立即删除。希望所有用户一同监督并反馈问题,如有侵权请联系站长或发送邮件到ebook666@outlook.com,本站将立马改正

内容介绍

编辑推荐

思想性:普及分形理论的经典算法,探索自然事物的无穷奥秘。

实战性:程序绘图,由浅及深,通俗易懂,示例丰富,讲解细致。

系统性:涵盖数据可视化的概念、定义、组织、布局、设计、制作等全过程,并提供完整的项目案例。

结构性:以绘图为点,分形与数据可视化为线,结构清晰,逻辑严密,相辅相成,相合相融。


内容简介

Python 是可视化的有力工具,被广泛地应用于科学计算和绘图领域。本书采用Turtle、Matplotlib、NumPy这三个Python工具,以分形与计算机图像处理的经典算法为例,通过程序和图像帮助读者一步步掌握Python绘图和数据可视化的方法和技巧,并且让读者感受到分形的魅力。

本书图文并茂,讲解细致,既是Python的绘图指南,也是分形的通俗化读物,适合熟悉Python基础知识,对分形和数据可视化感兴趣的Python绘图初学者。


作者简介

胡洁,网名timedot,近20年IT从业和管理经验,担任过开发、测试经理、QA经理、高级项目经理等多个职务,擅长PB、C、C++、Java、Perl、Python等编程语言。热爱传统文化,喜爱编程,遵崇“科学艺术本相通,科技人文可相融”的创作理念,将致力于为计算机科学融入更多的人文气息。

目录

第1章 海岸线有多长 1
1.1 海岸线 2
1.2 科赫(Koch)曲线 2
1.3 分形的特性 3
1.4 算法 4
1.5 科赫曲线.py源码 5
1.6 源码剖析 7
1.6.1 Turtle模块 7
1.6.2 函数 10
1.6.3 递归算法 11
1.7 数据可视化Tips 14
1.7.1 数据 14
1.7.2 可视化 16
第2章 基因与生成元算法 19
2.1 一生二,二生三 20
2.2 生成元 20
2.3 算法 23
2.4 生成元.py源码 24
2.5 源码剖析 27
2.6 数据可视化Tips 29
2.6.1 色彩 29
2.6.2 配色方案 32



第3章 植物算法之美 35
3.1 L文法系统(L-System) 36
3.2 经典的分形图形 38
3.2.1 科赫曲线(Koch Curve) 38
3.2.2 科赫雪花(Snowflake Curve) 40
3.2.3 分形龙(Dragon Curve) 41
3.3 分形维数 42
3.4 植物形态模拟 44
3.4.1 分形树 44
3.4.2 随机分形树 49
3.5 L文法系统.py源码 50
3.6 Matplotlib库 55
3.6.1 安装 56
3.6.2 组成部分 57
3.6.3 使用方式 57
3.6.4 折线函数Plot 58
3.6.5 显示模式 63
3.6.6 坐标轴函数 64
3.6.7 图像保存到文件 65
3.6.8 颜色格式 66
3.6.9 RcParams变量 66
3.7 源码剖析 67
3.7.1 栈和分形树 67
3.7.2 类和对象 68
3.7.3 L系统函数 72
3.8 数据可视化Tips――可视化材料 74
3.8.1 数据类型 74
3.8.2 空间结构 76
3.8.3 视觉元素和背景信息 77
3.8.4 材料的整合 78
3.9 L文法系统―随机.py源码 79
第4章 凝聚、凝聚、凝聚 82
4.1 扩散有限凝聚模型(DLA) 83
4.2 混沌和秩序 84
4.3 凝聚体 85
4.3.1 凝聚体类型1 85
4.3.2 凝聚体类型2 86
4.4 DLA(中心点,方形).py源码 87
4.5 随机数和Random模块 90
4.6 NumPy库 92
4.6.1 入门介绍 92
4.6.2 ndarray对象 92
4.6.3 NumPy创建数组 94
4.6.4 Random模块 96
4.7 Matplotlib.Pyplot模块函数 97
4.7.1 散点函数Scatter 97
4.7.2 其他绘图函数 100
4.7.3 Figure和Axes函数 103
4.8 源码剖析 105
4.9 数据可视化Tips 108
4.9.1 数据统计图 108
4.9.2 数据的统计分析 108
4.9.3 不同数据统计图的应用场景 111
4.10 DLA(一根线).py源码 112
第5章 拼贴与显影 115
5.1 迭代函数系统(IFS) 116
5.2 IFS分形图 117
5.3 IFS.py源码 122
5.4 源码剖析1 124
5.5 IFS拼贴图.py源码 126
5.6 源码剖析2 129
5.7 画布其他元素 130
5.7.1 标题 130
5.7.2 网格 131
5.7.3 x轴、y轴标签 132
5.7.4 x轴、y轴刻度 133
5.7.5 文本 134
5.7.6 注释 135
5.7.7 图例 137
5.7.8 显示中文字符 138
5.8 数据可视化Tips:增强可读性 138
第6章 优雅的曲线 142
6.1 螺旋线 143
6.2 规律与图形 143
6.2.1 极坐标系 143
6.2.2 阿基米德螺旋线 144
6.2.3 斐波那契螺旋线 145
6.2.4 蝴蝶曲线 146
6.3 螺线缩略图.py源码 147
6.4 OO(面向对象)方式 151
6.4.1 Subplot函数 151
6.4.2 Subplots函数 152
6.4.3 Axes对象方法 153
6.5 极坐标 155
6.6 LaTeX排版系统 157
6.7 缩略图源码剖析 158
6.8 数据可视化Tips:多视图关联设计 161
第7章 奇异瑰丽的图案 163
7.1 曼德勃罗集 164
7.2 分形图 165
7.2.1 曼德勃罗图形 165
7.2.2 朱利亚图形 167
7.2.3 可交互的缩略图 169
7.3 曼德勃罗缩略图.py源码 169
7.4 网格坐标矩阵 172
7.5 函数向量化 174
7.6 图像生成函数Imshow 176
7.7 Matplotlib事件处理 180
7.8 自定义ColorMap 182
7.9 缩略图源码剖析 185
7.9.1 Iterator函数 185
7.9.2 Plot_julia函数 186
7.9.3 Onclick函数 187
7.9.4 Plot_mandelbrot函数 188
7.9.5 主程序 189
7.10 数据可视化Tips 189
7.10.1 可视化交互设计 189
7.10.2 热力图 190
第8章 生命的迭代演化 191
8.1 细胞自动机 192
8.2 生命细胞分布图 193
8.3 生命游戏.py源码 198
8.4 源码剖析1 200
8.5 生命游戏(animation).py源码 202
8.6 程序安装 203
8.6.1 FFmpeg 203
8.6.2 ImageMagick 204
8.7 创建和保存动画 205
8.8 源码剖析2 206
8.9 数据可视化Tips――动画 207
第9章 股票交割单数据可视化案例 208
9.1 数据可视化的过程 209
9.2 收集数据 211
9.3 设计可视化方案 212
9.3.1 提出问题 212
9.3.2 选择合适的数据图表 212
9.4 制作和保存图表 213
9.4.1 成交次数柱状图 213
9.4.2 个股成交次数折线图 218
9.4.3 成交气泡图 222
9.4.4 资金盈亏图 228
附录A 分形 241
附录B 可视化的起源和发展 246

前言/序言

分形与可视化

“云彩不是球体,山岭不是锥体,海岸线不是圆周,树皮并不光滑,闪电更不是沿直线传播的。”

——《大自然的分形几何》


“在计算机学科的分类中,利用人眼的感知能力对数据进行交互的可视表达以增强认知的技术,称为可视化,它将不可见或难以直接显示的数据转化为可感知的图形、符号、颜色、纹理等,增强数据识别效率,传递有效信息。”

——《数据可视化》


人类有一种与生俱来的“语言天赋”,即无须后天的训练和学习就可以流利地解读图像语言。一份数字化报表,人们需要逐条浏览,才能获知报表所记录的情况,但是柱状图可以让人一眼就知晓所传达的信息。一座城市,道路复杂、河流交错、人群聚居,但是只要一张地图,就可以让人快速了解这座城市的物理空间结构和人群分布。一家大型企业,有很多不同职能的部门,工作的细分程度也很高,但是只要一张组织结构图,就可以让人迅速地明了这家企业的层级关系和职责分工。

人眼是一个视觉信号输入处理器,这个处理器可以同时处理大量的信息,同时它具有很强的模式识别能力,可以快速地,甚至潜意识地解读图形、颜色、纹理等图像符号,解读的速度更是远远大于对数字或文本等形式的感知。正是因为人类视觉的这个特点,从文明初始起,人类便开始通过可视化来进行信息的记录、推理和分析,借助图形和图像来研究、探索和传播万事万物的原理和规律。分形理论的发展也是如此。

分形理论也被称为分形几何、大自然的几何学,它是著名数学家本华·曼德勃罗(法语:Benoît B. Mandelbrot)在1975年构思和发展出来的一种新的几何学。这种几何学完全不同于经典的欧氏几何,它把自然形态看作具有无限嵌套层次的精细结构,这种结构在不同的尺度下保持着某种相似性。也就是说,局部与整体相似,抑或局部是整体的缩影。分形理论既是科学,也是艺术,它的算法巧妙、图形精美,并且蕴含了深刻的自然哲学思想。这种思想根植于传统文化,在近代以科学实证的方式得到了充足的发展,被广泛地应用于各行各业。有兴趣的读者可参看附录A关于分形的介绍。

分形理论在发展的过程中,同样应用了可视化技术。科学家们建立模型,在计算机上进行各种实验,然后将实验数据可视化,并在形成图形和图像的过程中捕获和探索大自然各种形态的奥秘。在本书中,我们将采用Python绘图工具还原分形理论的这些计算机实验及可视化的过程。

Python绘图

Python是一门免费、开源的高级编程语言,有着简洁、易读、灵活、易维护和模块化的优良特性,并且可以轻松地与其他编程语言及软件集成。同时,Python有着丰富的第三方工具库,其中的可视化工具既有基础的Matplotlib,也有复杂的Seaborn、Bokeh,这些工具的使用非常简便,代码可复用、可交互,是实现可视化的强大助力。跟其他数据可视化工具相比,Python的优势如下。

对比Excel。Python绘图无须按照步骤手工一步一步地操作,而是如同记事本写文章一样,只需要输入几行代码,便可以调用数据,生成各式图表,并且可以复用。Python作为一门编程语言,其绘图更灵活、更自由,可以画出Excel不具备的图表及各种特殊效果,比如自定义的可视化交互、动画、颜色渲染等。使用Excel最大的局限在于数据量不能太多,一旦数据量过多,计算机内存占用负荷就会升高,图形生成的效率就会降低,从而容易导致错误,但想要找出错误的原因也并不是一件容易的事。Python擅长科学计算,因此更适合对大量数据进行处理和可视化,生成图形的效率也更高,同时,其简洁、清晰的代码风格也使得修改和定位错误更加容易。


对比R语言。R语言是一种用于统计分析和绘图的语言,该语言的语法在表面上类似C语言,但在语义上是函数设计语言的变种。相比Python,R语言更适合科研绘图,其更专业也更难学习。而Python是一种代表简单主义思想的语言,其安装配置步骤简单,对于普通人来说,更容易学习和使用。学习Python绘图,只需要熟悉Python的一些基础知识,就能生成各种数据统计图表,并不需要太高的学习成本。

对比SAS软件。SAS是由美国North Carolina州立大学于1966年开发的统计分析软件。SAS把数据存取、管理、分析和展现有机地融为了一体。SAS作为一个专业的商业软件,功能强大,统计方法齐、全、新,但是它的安装步骤复杂、价格昂贵,同时也需要用户具备一定的编程基础。对于不需要太复杂的统计分析,只要求对数据进行计算处理并生成常用数据统计图的普通用户来说,使用SAS软件的代价实在太高。而Python小巧、免费、灵活、多功能,更能符合普通用户的需求。

本书采用的Python工具为Turtle、Matplotlib和NumPy,其中从Turtle模块开始入门,逐步过渡到专业级的Matplotlib库和NumPy库。Matplotlib库是比较底层的Python可视化第三方库,有着可定制性强、图表资源丰富、简单易用、达到专业级别的特点。在Python中有许多可用于数据可视化的库,但大多数库都是基于Matplotlib库进行开发封装的,所以,学习Python数据可视化,就必须学习Matplotlib库。Matplotlib库非常灵活,几乎可以生成任何类型的图形,无论是简笔画、艺术图还是数据统计图,都可以完美生成。

本书主要内容

本书采用Turtle、Matplotlib、NumPy这三个Python工具,以分形与计算机图像处理的经典算法为例,通过程序和图像帮助读者一步步地掌握Python绘图和数据可视化的方法和技巧,并且让读者感受到分形的魅力。

本书共分9章,主要内容如下。

第1章:海岸线有多长。采用Python自带的Turtle模块,探讨了海岸线的特点,并用科赫曲线在计算机上模拟了海岸线。这一章是分形和Python绘图的入门章节。

第2章:基因与生成元算法。采用Turtle模块探讨了生成元算法,并分析和展示了多个生成元的实例。

第3章:植物算法之美。从Turtle模块过渡到专业级的Matplotlib绘图库,探讨了L文法系统,并分析和展示了该系统所生成的多个分形图和植物形态模拟。这一章主要介绍Matplotlib绘图库从安装到具体使用的一系列基础知识。

第4章:凝聚、凝聚、凝聚。采用Matplotlib绘图库和NumPy库,探讨了扩散有限凝聚模型,并分析和展示了多个凝聚体。这一章主要介绍随机数、NumPy库及Matplotlib库中的几个绘图函数。

第5章:拼贴与显影。采用Matplotlib绘图库和NumPy库,探讨了迭代函数系统,并分析和展示了多个IFS分形图和拼贴图。这一章主要介绍画布上的其他元素:标题、网格、x和y轴标签、刻度、文本、注释、图例等。

第6章:优雅的曲线。采用Matplotlib绘图库和NumPy库,探讨了潜藏在螺旋背后的规律,并分析和展示了多个规律和图形。这一章主要介绍子图、极坐标及LaTeX排版系统。

第7章:奇异瑰丽的图案。采用Matplotlib绘图库和NumPy库,探讨了曼德勃罗集和朱利亚集,并分析和展示了曼德勃罗图形和多个朱利亚图形。这一章主要介绍网格坐标矩阵和NumPy库的相关函数,以及Matplotlib库的Imshow函数、事件处理和自定义Colormap。

第8章:生命的迭代演化。采用Matplotlib绘图库和NumPy库,探讨了细胞自动机和生命游戏,并分析和展示了多种生命细胞分布图。这一章主要介绍动态演示图像和动画,以及Matplotlib库的Animation模块。

第9章:股票交割单数据可视化案例。这一章包含了一个完整的数据可视化项目案例,给读者提供了一个系统化的参考样本。