对于绘制层次嵌套箱线图有什么建议吗?

对于绘制层次嵌套箱线图有什么建议吗?

您是否推荐一个包、工具或方法来自动绘制大型、复杂、层次嵌套的框图,例如下面的示例? 层次嵌套箱线图示例

我想以文本格式提供输入(这样我可以轻松进行较大的更改)并以矢量格式(例如 PDF)获取结果,适合在 LaTeX 中使用。这些是我正在考虑的替代方案,但所有这些都需要大量工作才能获得我需要的结果。

  • GNU 图片使用一些宏
  • 写一个加工程序
  • 编写脚本,从简单的文本输入生成嵌套的 LaTeX 表

答案1

我最终设计并实现了一种小型领域特定语言来表示这些图形。该语言允许您定义

  • 水平和垂直框架盒(hbox、vbox)
  • 普通(无框)复合盒(pbox)
  • 水平和垂直标签(hl、vl)

各个框并排放置;空白行在下一行继续布局。

Python 脚本生成独立的 LaTeX 文档。您可以在以下位置找到脚本和示例这个 GitHub 存储库。下面是图像的示例和相应的代码。

层次结构图示例

水平盒 {
  hl 内核空间
  水平盒 {
    hl 系统调用接口
    中断
    水泥
    正在加载...
    取消链接
    等待
  }
  hbox 引导加载程序

  垂直框 {
    hl 内核实用函数
    虚拟内存分配
    免费
    vl 唤醒
    获得
    访问
    维利盖特
  }
  框 {
    水平盒 {
      hl I/O 子系统
      水平盒 {
        pbox { # 特殊设备、命名和套接字
          水平盒 {
            hl 特殊设备
            vl 线路纪律
            vl 原始字符
            vl 原始磁盘
          }
      水平盒 {
        hl 文件系统

        hbox inode 层

        水平盒块层
        }
      }

      水平盒 {
        hl 设备驱动程序
        水平盒 {
          hl 字符设备
          vl 键盘
          vl 打印机
          vl 纸带
          正在加载...
        }
    水平盒 {
      hl 块设备
      vl rk: RK03 磁盘
      vl rf: RF11 磁盘
      内存
    }
      }
    }
  }
  水平盒 {
    hl 过程控制子系统
    调度器
    vl 交换管理器
    vl 内存管理器
    正在加载...
  }
}

答案2

多年前我见过一个看起来一模一样的。快速谷歌搜索显示它仍然存在。仍然看起来接近您的要求。除了它是一个带图表的可视化编码系统之外,我不知道它的质量、功能等如何。

http://www.tersus.com/#Id=24

相关内容