【问题标题】:How to generate a legend with colors in PlantUML?如何在 PlantUML 中生成带有颜色的图例?
【发布时间】:2020-05-24 23:33:40
【问题描述】:

我想根据特定标准为类图中的类着色,然后显示一个图例,大致如下:

如果我可以在 PlantUML 的 legendendlegend 中添加一个 HTML 表格,我可以通过更改单元格背景来实现这一点。但是,添加 HTML <table> 不起作用。我还尝试使用PlantUML's salt 插入表格,但我找不到任何方法来为表格的单元格着色。

有什么办法可以做到吗?

【问题讨论】:

    标签: documentation-generation plantuml


    【解决方案1】:

    我已经尝试过 nfec 的解决方案,但它对我不起作用,但它让我开始使用一个确实有效的解决方案。这是我得到的:

    legend right
        |Color| Type |
        |<#FF0000>| Type A class|
        |<#00FF00>| Type B class|
        |<#0000FF>| Type C class|
    endlegend
    

    看起来是这样的:

    【讨论】:

    • 这对我来说比接受的答案好得多。另外,值得一提的是,您可以使用颜色名称代替十六进制值(如:github.com/qywx/PlantUML-colors
    • 不错,甚至可以像这样|Type| / |&lt;#LightYellow&gt;Unchanged| / |&lt;#LightPink&gt;Replaced| / endlegend 组合成一列彩色单元格
    【解决方案2】:

    这并不完美,但您可以使用克里奥尔语表。 (看 http://plantuml.sourceforge.net/creole.html)

    @startuml class foo
    
     legend
     |= |= Type |
     |<back:#FF0000>   </back>| Type A class |
     |<back:#00FF00>   </back>| Type B class |
     |<back:blue>   </back>| Type C class |
     endlegend
    
    @enduml
    

    有一些绘图工件,但这是您所期望的吗?

    来自植物论坛。他们允许在此处复制此答案。

    是的,请复制/粘贴我们对 StackOverflow 的回答:这确实很有帮助

    http://plantuml.sourceforge.net/qa/?qa=3596/how-to-generate-a-legend-with-colors-in-plantuml

    【讨论】:

      【解决方案3】:

      似乎没有直接的方法在 PlantUML 图中包含颜色编码的图例,但我想出了一个足够接近的解决方法。

      • 在包LEGEND中声明类TypeATypeBTypeC
      • 隐藏每个类的圈子、方法和成员。
      • 在类之间附加“隐藏”连接器。


      package LEGEND <<Rect>> { ' Draw the LEGEND "package" as a rectangular box.
      class TypeA as "Type A Class" #LightRed
      hide  TypeA circle
      hide  TypeA methods
      hide  TypeA members
      
      class TypeB as "Type B Class" #LightBlue
      hide  TypeB circle
      hide  TypeB methods
      hide  TypeB members
      
      class TypeC as "Type C Class" #LightGreen
      hide  TypeC circle
      hide  TypeC methods
      hide  TypeC members
      
      ' Workaround to prevent PlantUML from positioning the legend blocks randomly.
      TypeA -[hidden]- TypeB
      TypeB -[hidden]- TypeC
      }
      

      或者,“隐藏”连接器可以替换为-r-,如下所示:

      TypeA -r- TypeB
      TypeB -r- TypeC
      

      这些产生以下图表。两者都不是完美的,但比在图像编辑器中单独绘制图例要好。 :-) 我确实希望 PlantUML 在未来的版本中提供对此的直接支持。

      【讨论】:

      • 您可以在 Plantuml 网站的问答部分询问。
      • @Fuhrmanator 是的,你是对的。我后来想通了。我做到了,并在那里得到了更好的答案。 plantuml.sourceforge.net/qa/?qa=3596/…我已经让他们也在这里发布他们的答案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-03
      • 2022-06-22
      • 1970-01-01
      • 2014-07-04
      • 1970-01-01
      • 1970-01-01
      • 2021-12-11
      相关资源
      最近更新 更多