PHP版本的Graphviz样例之集群流程图

2024-04-08 23:32

本文主要是介绍PHP版本的Graphviz样例之集群流程图,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

Graphviz是一个强大的开源的图形软件包,不仅支持桌面应用,也支持Web应用,其关键技术在于它的自动布局和布线功能。

安装libgv-php5后,Graphviz支持PHP编程,可以实现浏览器上显示图形。然而,整个开发环境的安装与设置相对比较复杂一些,需要相当的专业技术。


Graphviz是一个开源软件,有源码,支持不同平台。linux系统下使用XDot程序显示dot格式的文件。

Graphviz显示图形时,可以选择不同的策略进行布局和布线显示图形。

Graphviz的官方网站(点击进入)Graphviz | Graphviz - Graph Visualization Software。

Web版的Graphviz网站(点击进入)Webgraphviz


PHP代码如下(其中保护若干调试代码,已经注释了):

<!DOCTYPE html>
<html lang="zh-CN"><head><meta charset="utf-8"><title>GVPHP</title>
</head><?php
//  ini_set('display_errors', true);//  if( !(bool)ini_get( "enable_dl" ) || (bool)ini_get( "safe_mode" ) ) {
//     ECHO "dh_local(): Loading extensions is not permitted.\n";
//  } else {
//     ECHO "OK";
//  }// http://www.graphviz.org/pdf/dotguide.pdf page 23include('libgv-php5/gv2.php');$g = gv::digraph('G'); //line 1$N = gv::protonode($g); // line 3$cluster0 = gv::graph($g, 'cluster0'); // line 2gv::setv($N, "style", "filled"); // line 3gv::setv($N, "color", "white"); // line 3gv::setv($cluster0, "style", "filled"); // line 4gv::setv($cluster0, "color", "lightgrey"); // line 5gv::edge($cluster0, 'a0', 'a1'); //line 6gv::edge($cluster0, 'a1', 'a2'); //line 6gv::edge($cluster0, 'a2', 'a3'); //line 6gv::setv($cluster0, "label", "process #1"); // line 7$cluster1 = gv::graph($g, 'cluster1'); // line 10gv::setv($N, "style", "solid");gv::setv($N, "color", "black");gv::edge($cluster1, 'b0', 'b1'); //line 12gv::edge($cluster1, 'b1', 'b2'); //line 12gv::edge($cluster1, 'b2', 'b3'); //line 12gv::setv($cluster1, "label", "process #2"); // line 13gv::setv($cluster1, "color", "blue"); // line 14  $node_start = gv::node($g, 'start');gv::setv($node_start, "shape", "Mdiamond");$node_end = gv::node($g, 'end');gv::setv($node_end, "shape", "Msquare");gv::edge($g, 'start', 'a0'); //line 16gv::edge($g, 'start', 'b0'); //line 17gv::edge($g, 'a1', 'b3'); //line 18gv::edge($g, 'b2', 'a3'); //line 19gv::edge($g, 'a0', 'a3'); //line 20gv::edge($g, 'a3', 'end'); //line 21gv::edge($g, 'b3', 'end'); //line 22gv::layout($g, 'dot');gv::render($g, 'png', 'graph1.png');gv::rm($g);echo '<img src="graph1.png">';
?></html>

界面效果如下:



DOT语言代码如下:

digraph G {  subgraph cluster0 {  node [style=filled,color=white];  style=filled;  color=lightgrey;  a0 -> a1 -> a2 -> a3;  label = "process #1";  }  subgraph cluster1 {  node [style=filled];  b0 -> b1 -> b2 -> b3;  label = "process #2";  color=blue  }  start -> a0;  start -> b0;  a1 -> b3;  b2 -> a3;  a3 -> a0;  a3 -> end;  b3 -> end;  start [shape=Mdiamond];  end [shape=Msquare];  
}


这篇关于PHP版本的Graphviz样例之集群流程图的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/886665

相关文章

浅谈配置MMCV环境,解决报错,版本不匹配问题

《浅谈配置MMCV环境,解决报错,版本不匹配问题》:本文主要介绍浅谈配置MMCV环境,解决报错,版本不匹配问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录配置MMCV环境,解决报错,版本不匹配错误示例正确示例总结配置MMCV环境,解决报错,版本不匹配在col

Redis分片集群的实现

《Redis分片集群的实现》Redis分片集群是一种将Redis数据库分散到多个节点上的方式,以提供更高的性能和可伸缩性,本文主要介绍了Redis分片集群的实现,具有一定的参考价值,感兴趣的可以了解一... 目录1. Redis Cluster的核心概念哈希槽(Hash Slots)主从复制与故障转移2.

Linux卸载自带jdk并安装新jdk版本的图文教程

《Linux卸载自带jdk并安装新jdk版本的图文教程》在Linux系统中,有时需要卸载预装的OpenJDK并安装特定版本的JDK,例如JDK1.8,所以本文给大家详细介绍了Linux卸载自带jdk并... 目录Ⅰ、卸载自带jdkⅡ、安装新版jdkⅠ、卸载自带jdk1、输入命令查看旧jdkrpm -qa

Tomcat版本与Java版本的关系及说明

《Tomcat版本与Java版本的关系及说明》:本文主要介绍Tomcat版本与Java版本的关系及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录Tomcat版本与Java版本的关系Tomcat历史版本对应的Java版本Tomcat支持哪些版本的pythonJ

IDEA中Git版本回退的两种实现方案

《IDEA中Git版本回退的两种实现方案》作为开发者,代码版本回退是日常高频操作,IntelliJIDEA集成了强大的Git工具链,但面对reset和revert两种核心回退方案,许多开发者仍存在选择... 目录一、版本回退前置知识二、Reset方案:整体改写历史1、IDEA图形化操作(推荐)1.1、查看提

JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)

《JDK多版本共存并自由切换的操作指南(本文为JDK8和JDK17)》本文介绍了如何在Windows系统上配置多版本JDK(以JDK8和JDK17为例),并通过图文结合的方式给大家讲解了详细步骤,具有... 目录第一步 下载安装JDK第二步 配置环境变量第三步 切换JDK版本并验证可能遇到的问题前提:公司常

nvm如何切换与管理node版本

《nvm如何切换与管理node版本》:本文主要介绍nvm如何切换与管理node版本问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录nvm切换与管理node版本nvm安装nvm常用命令总结nvm切换与管理node版本nvm适用于多项目同时开发,然后项目适配no

Mybatis从3.4.0版本到3.5.7版本的迭代方法实现

《Mybatis从3.4.0版本到3.5.7版本的迭代方法实现》本文主要介绍了Mybatis从3.4.0版本到3.5.7版本的迭代方法实现,包括主要的功能增强、不兼容的更改和修复的错误,具有一定的参考... 目录一、3.4.01、主要的功能增强2、selectCursor example3、不兼容的更改二、

pytorch+torchvision+python版本对应及环境安装

《pytorch+torchvision+python版本对应及环境安装》本文主要介绍了pytorch+torchvision+python版本对应及环境安装,安装过程中需要注意Numpy版本的降级,... 目录一、版本对应二、安装命令(pip)1. 版本2. 安装全过程3. 命令相关解释参考文章一、版本对

springboot3.4和mybatis plus的版本问题的解决

《springboot3.4和mybatisplus的版本问题的解决》本文主要介绍了springboot3.4和mybatisplus的版本问题的解决,主要由于SpringBoot3.4与MyBat... 报错1:spring-boot-starter/3.4.0/spring-boot-starter-