开源的图可视化工具——Graphviz

news/2025/2/11 23:53:19/

在这里插入图片描述

g r a p h v i z graphviz graphviz(Graph Visualization Software)是一个由 A T & T AT\&T AT&T实验室启动的开源工具包,用于绘制 D O T DOT DOT语言脚本描述的图形。

实现可视化效果(官网摘取):

在这里插入图片描述
在这里插入图片描述

下载安装

官网:http://www.graphviz.org/

对应各个系统版本下载,win用户安装过程中选择自动加入path即可,其他系统用户详见官网下载页说明。

使用

vscode对应插件Graphviz Preview

主要方法

主要分为八个转换方法, g r a p h v i z graphviz graphviz主要功能就是把脚本转化为svg图或者其他模式的图片,其中使用较多的转换方法是dotneato

  • dot:有向图
  • neato:无向图

作用方式为:dot/neato/... [option] file

保存为pdf文件,类比svg

dot -Tpdf -o test.pdf ./test.dot

在这里插入图片描述

更详细的参数说明见http://www.graphviz.org/pdf/dot.1.pdf

应用

为搜索二叉树基类添加DOT格式文档的输出方法:

template <typename T>
void Tree<T>::TreeOut(TreeNode<T> *x, string name)
{// 声明文件名称stringstream sstr;name = name + ".dot";int num = name.size() + 1;char *filename = new char[num];sstr << name;sstr >> filename;freopen(filename, "w", stdout);cout << "digraph Tree{" << endl;queue<TreeNode<T> *> q;q.push(x);while (q.size()){TreeNode<T> *tmp = q.front();q.pop();if (tmp->_left){cout << tmp->_key << "->" << tmp->_left->_key << endl;q.push(tmp->_left);}if (tmp->_right){cout << tmp->_key << "->" << tmp->_right->_key << endl;q.push(tmp->_right);}}

最终得出结果为:
在这里插入图片描述

可以看得出效果相对较差,因为间距问题和无法区分左右子树,所以后续需要继续改进,网上挖到一份陈年脚本,用上效果很好,挂个链接:https://gist.github.com/nanpuyue/b5950f20937f01aa43227d269aa83918

在这里插入图片描述


http://www.ppmy.cn/news/558798.html

相关文章

三维重建-使用开源库openMVG与openMVS

在前面我们已经介绍了编译openMVG与openMVS的方法&#xff0c;得到了openMVG与openMVS的x64位的Debug版本和Release版本 vcpkg问题-环境配置 关于使用vcpkg的一些技巧补充 openMVG编译 openMVS编译 参考博客&#xff1a; https://blog.csdn.net/qq_39615622/article/detai…

在Graphviz中画出好看的二叉树、B树、如何使用pos变量

一、二叉树 (一) 前提 使用过Graphviz画二叉树的同学都会发现&#xff0c;画出来的东西没有像教材那样规规矩矩&#xff0c;对于有强迫症的同学来说&#xff0c;可以采用以下思路进行完善 (二) IDEA Dot startuml digraph btree {graph [nodesep0.1, pad0.02, ranksep0.5]…

pygraphviz 学习笔记

pygraphviz 学习笔记 个人认为python第三方库中 graphviz比 pygraphviz好&#xff0c;以下是之前学习pygraphviz的笔记&#xff1a; G.add_path(nlist) 按nlist增加路径 G.clear() Remove all nodes, edges, and attributes from the graph. G.degree(nbunchNone, with_labelsF…

ROS中使用激光雷达HLS-LFCD LDS(Neato XV-11)

本例激光雷达: HLS-LFCD2 参考资料&#xff1a; https://blog.csdn.net/jacka654321/article/details/82916688 接线 新款 CP2102模块 USB to TTL USB转串口模块UART 按照激光雷达pin脚描述图&#xff1b;从1-6把把6pin接头的线顺序接到并排杜邦线上&#xff0c; 6pin …

neato xv21 ros下使用

修改neato_node 下neato.py文件如下&#xff1a; #!/usr/bin/env python # ROS node for the Neato Robot Vacuum # Copyright (c) 2010 University at Albany. All right reserved. # # Redistribution and use in source and binary forms, with or without # modification…

激光雷达neato_laser与电脑连接记录

激光雷达neato_laser与电脑连接记录 第一步&#xff0c;建立工作空间 在虚拟机打开一个新的终端 mkdir -p ~/shizhan01_ws/src &#xff08;shizhan01_ws是工作空间名字&#xff0c;这个名字不建议取catkin_ws&#xff0c;因为网上很多例程都是用这个名字作为命名空间&#…

贝壳扫地机器人_6千的扫地机器人是否值得买?有戴森手持的家,使用NEATO D7的体验及选购建议...

家里有个戴森V6&#xff0c;平时老公用得比较多&#xff0c;可能是因为他戴眼镜看地上我的掉发看得比较清楚吧&#xff0c;反正我总是不觉得家里脏。之前日常使用频率大概是一周1-2次。 主要是孩子床底、沙发、电视柜底下用手持清扫需要弯腰&#xff0c;就用扫地机器人了。 ——…

在ROS中使用Neato XV-11 激光雷达

本文转自雷达大叔&#xff1a;http://make4e.com/pages/g000007 在ROS系统中使用XV-11 Lidar 进行SLAM&#xff0c;需要做如下软硬件的准备&#xff1a; 硬件&#xff1a; xv-11 激光雷达一个 &#xff08;店里有卖 http://y0.cn/lidar) USB 转换串口转接线一个 (店里也有卖&…