ruby-graphviz 入门

Graphviz Ruby教程
本文介绍如何使用Graphviz的Ruby扩展ruby-graphviz绘制图形。通过示例展示了如何创建节点、添加边、设置属性以及生成图像文件。

自从写了一个关于Graphviz 的教程 以来,我一直觉得它使用起来还不够方便。最近终于找到Graphviz 的Ruby 扩展了——ruby-graphviz

首先你得安装Graphviz ,记得装在默认目录下,不然ruby-graphviz 找不到(我还不知道怎么设置PATH,请指教)。

然后,gem 一下:

 

接下来将见证神奇的一刻。

 

Run 一下,你会在源文件所在目录下发现一个hello_world.png 文件。hello world

老规矩,下面来解释一下。

可以用new 创建一个graph 对象。new 的时候有这么几个选项:

  • :output : Output format (Constants::FORMATS) (default : dot)
  • :file : Output file name (default : none)
  • :use : Program to use (Constants::PROGRAMS) (default : dot)
  • :path : Program PATH
  • :parent : Parent graph (default : none)
  • :type : Graph type (Constants::GRAPHTYPE) (default : digraph)

用output (有个别名save)生成图像。同样,output 也有几个可选项:

  • :output : Output format (Constants::FORMATS)
  • :file : Output file name
  • :use : Program to use (Constants::PROGRAMS)
  • :path : Program PATH

用add_node 来加点。可以像这样来设置属性:

 

这样,n 将会是一个用<.7, .3, 1.0> 填充的box。

用node_count 来对点计数。

用[]= 来设置属性值:

 

用add_edge 加边。

用edge_count 来对边计数。

也可以像点那样设置属性:

 

这样,e 将成为一条带红色标注“an edge” 的蓝线。

Record Nodes

记录是一个盒子,被分割成横的或竖的格子。格子之前可以加标记,只需把标记放在尖括号<> 之间。横格子之间用竖杠| 隔开,竖格子就是外加一对大括号{}。看下面的例子:

structs

 

再来看一个复杂一点的例子:

一个复杂一点的例子

 

子图

代码说明一切(注意add_graph):

subgraph

高级技巧

同一个图的三种不同写法:

Rubyist 更喜欢的风格:

Ruby geek 的写法:

 

同一个例子

小结

ruby-graphviz 和graphviz 的原生DOT 文件之间存在一一对应的关系。一个典型的graphviz DOT 文件有三个主要部分:

  1. 数据头,用来设置点、边、图的属性
  2. 点定义
  3. 边定义

所以ruby-graphviz 文件也是由这三部分组成。我们用一个对比例子来结束本教程。

这个graphviz 例子来自Mark A. McBride

 

我用Ruby 改写了这个例子:

 

final sample

要想了解更多,请看官方文档

当使用 `pip install python-graphviz -i https://mirrors.aliyun.com/pypi/simple/` 安装 `python-graphviz` 报错 `Could not find a version that satisfies the requirement python-graphviz` 和 `No matching distribution found for python-graphviz` 时,可尝试以下解决办法: ### 更换其他镜像源 不同镜像源更新时间和包含的软件包版本可能不同,可尝试使用豆瓣、清华大学、中国科学技术大学、华中科技大学等镜像源来安装 `python-graphviz`: - 豆瓣: ```bash pip install python-graphviz -i http://pypi.douban.com/simple/ ``` - 清华大学: ```bash pip install python-graphviz -i https://pypi.tuna.tsinghua.edu.cn/simple/ ``` - 中国科学技术大学: ```bash pip install python-graphviz -i http://pypi.mirrors.ustc.edu.cn/simple/ ``` - 华中科技大学: ```bash pip install python-graphviz -i http://pypi.hustunique.com/ ``` ### 检查 Python 版本 确保使用的 Python 版本在 `python-graphviz` 支持的范围内。可以通过查看 `python-graphviz` 的官方 PyPI 页面、项目的 `setup.py` 或 `pyproject.toml` 文件来确定支持的 Python 版本范围。若 Python 版本不兼容,建议升级或降级 Python 版本到支持的范围内。 ### 直接从 PyPI 安装 若所有国内镜像源都无法找到匹配的版本和发行版,可以尝试直接从 PyPI 官方源进行安装,但安装速度可能会较慢: ```bash pip install python-graphviz ``` ### 安装系统级依赖 `python-graphviz` 依赖系统级的 Graphviz 库,若未安装,可能会导致安装失败。 - 在 Ubuntu 或 Debian 系统上,使用以下命令安装: ```bash sudo apt-get install graphviz ``` - 在 CentOS 或 RHEL 系统上,使用以下命令安装: ```bash sudo yum install graphviz ``` - 在 macOS 上,使用 Homebrew 安装: ```bash brew install graphviz ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值