python图形可视化(图形可视化基础第一部分)
python图形可视化(图形可视化基础第一部分)conda 激活图也可以在 jupyter notebook 中为这个虚拟环境创建一个独特的内核,我在终端中使用以下命令创建了这个内核:conda env create -n graphs --file graphs-environment.yml创建环境后,我使用以下方法激活它:为了创建虚拟环境,我创建了一个 yml 文件,如下所示。它包含此项目所需的依赖项列表。用于创建名为 graphs 的虚拟环境的环境文件。要创建使用给定 yml 文件命名的虚拟环境graphs,我在终端中运行以下命令:
使用 SchemaDraw 包创建流程图最近,我的任务是创建一个逻辑树图来表示我工作中的问题解决过程。在逻辑树中,我必须表示各种方程来解决问题。显然,我可以使用 MS PowerPoint 或 Paint 等程序创建逻辑树。但是使用这些程序将是一个手动过程,这可能会导致可视化中的形状和大小出现一些不一致。此外,手动修改这些图可能是一个乏味的过程。
我想自动化这个过程。所以我开始探索用 Python 创建逻辑树的可能性。我遇到了可以满足我的目的的不同软件包,例如networkx和graphviz. 我想用 Python 探索更多的可能性来代表解决问题的过程。在本系列中,我将分享我对使用 Python 进行图形可视化的不同可能性的发现。在本系列的第一部分中,我将分享我发现的一种使用SchemDraw包在 Python 中创建流程图的技术。在接下来的部分中,我将分享使用其他软件包可视化树结构(例如逻辑树和器官图)的方法。让我们开始吧。
图片来自Unsplash的Kelly Sikkema
该项目的虚拟环境我首先创建一个graphs为此项目命名的虚拟环境。Python 虚拟环境为项目创建了一个隔离的环境。这意味着每个项目都有自己的依赖项(Real Python,2018)。使用虚拟环境可以避免全局安装 Python 包,这可能会破坏系统工具或其他项目(PyPA,2022)。
为了创建虚拟环境,我创建了一个 yml 文件,如下所示。它包含此项目所需的依赖项列表。
用于创建名为 graphs 的虚拟环境的环境文件。
要创建使用给定 yml 文件命名的虚拟环境graphs,我在终端中运行以下命令:
conda env create -n graphs --file graphs-environment.yml
创建环境后,我使用以下方法激活它:
conda 激活图
也可以在 jupyter notebook 中为这个虚拟环境创建一个独特的内核,我在终端中使用以下命令创建了这个内核:
python -m ipykernel install --user --name graphs --display-name "graphs"
安装内核后,要在给定环境中运行笔记本,我只需转到内核,更改内核,然后选择图形。如果不再需要环境,也可以使用以下方法轻松删除它:
conda env 删除 -n 图表
流程图
流程图是按顺序表示过程中不同步骤的图片。流程图可以有不同的类型,但它们的主要目的是反映解决问题或实现目标的流程。我记得在我高中的计算机科学课上第一次学习流程图。用笔和纸画出流程图来解决简单的问题,比如计算 n 个数字的总和或打印一个数字序列,在当时是一个有趣的挑战。
在下一节中,我将描述一种使用SchemDraw包在 Python 中创建流程图的方法。我将考虑一个问题的例子来检测一个字符串是否是回文。
流程图的元素由 Colling J. Delker 开发的 S chemDraw软件包允许创建高质量的电路原理图。但是,我发现这个包也可以用来创建定制的流程图。
流程图中有六个主要元素。开始或结束节点由椭圆形表示。平行四边形表示用户定义的输入,而矩形表示过程。菱形形状说明了该过程中的决策阶段。不同的形状由尖箭头连接,也称为连接器。使用 SchemDraw,可以通过导入schemdraw.Drawing()和传递每个元素的相应参数和标签,在 Python 中构造这些基本形状。此外,此包允许用户控制元素的大小,例如宽度和高度,以及箭头的方向,如下面的屏幕截图所示。
使用 SchemDraw 包构建流程图的基本元素。图片由作者提供。
表示回文问题的流程图回文是向前或向后读取相同的单词或序列。这个问题的算法非常简单。首先,我要求用户输入一个字符串。接下来,我反转字符串。如果字符串和它的反串相同,则该字符串是回文,如果不是,则不是回文。这个问题可以用 Python 来表述,只是几行代码,如下所示:
string = input("请输入一个字符串:")reverse_string = 字符串[::-1]if string == reverse_string:
print (f”{string} is a palindrome.”) else:
print (f”{string} is not a palindrome.”)
下面的要点中给出了使用 SchemDraw 获取此问题流程图的代码。它以一个起始节点开始,然后是一个用于输入字符串的输入框。接下来,有一个用于反转字符串的过程框,以及一个用于检查字符串及其反转是否相同的菱形框。根据决策是真还是假,有两个不同的箭头从决策框中分叉出来。打印结果后,箭头最终在末端节点达到顶点。
结果,我得到了如下所示的流程图,也可以保存为图像文件。
解决使用 SchemDraw 创建的回文问题的流程图。图片由作者提供。
结论图形可视化是一个有趣的概念,用于表示网络、流程(如供应链或问题解决过程)、树结构(如决策树、组织树、逻辑树和文件夹树)。虽然 Python 中有一些可用于数据可视化的复杂包,例如 matplotlib、seaborn、Bokeh、Plotly 等,但也有一些包可以在 Python 中表示图形和网络,尽管它们并不流行。
在这篇文章中,我首先为这个项目创建了一个虚拟环境。然后我解释了一种使用 SchemDraw 包在 Python 中创建简单流程图的方法。在本系列的后续部分中,我将分享一些我想出的使用 networkx 和 graphviz 等包来表示诸如器官图和逻辑树之类的树结构的方法。
感谢您的阅读!
参考PyPA,2022 年。使用 pip 和虚拟环境安装包。
真正的 Python,2018。Python虚拟环境:入门。