最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Python使用Mermaid與Graphviz實現(xiàn)關系圖表生成的實戰(zhàn)指南

 更新時間:2026年01月19日 08:17:48   作者:weixin_46244623  
這篇文章主要為大家詳細介紹了兩種Python生成關系圖表的方法,即Mermaid和Graphviz,下面小編就和大家詳細介紹一下具體的實現(xiàn)方法吧

在數(shù)據(jù)分析、系統(tǒng)建?;蜿P系可視化場景中,我們常常需要將實體關系以圖表形式展示。Python 社區(qū)中有兩種流行的方案:

  • Mermaid:基于文本生成流程圖、時序圖、關系圖,常用于文檔和網(wǎng)頁。
  • Graphviz:功能強大的圖形可視化工具,支持 PNG、SVG 等多種輸出格式。

本文將演示如何用 Python 測試生成 Mermaid 和 Graphviz 圖表,并兼容中文顯示。

一、準備工作

1. 安裝依賴

pip install pydantic graphviz

注意:Graphviz 生成圖像需要系統(tǒng)安裝 Graphviz 可執(zhí)行文件。

Ubuntu/Debian:

sudo apt-get install graphviz

macOS:

brew install graphviz

Windows:請從 Graphviz 官網(wǎng) 下載并安裝。

二、定義關系模型

我們使用 pydantic 定義實體關系模型,每條關系包含三個屬性:subject、predicate、object

from pydantic import BaseModel, Field

class Relationship(BaseModel):
    subject: str = Field(...)
    predicate: str = Field(...)
    object: str = Field(...)

三、生成 Mermaid 圖表

Mermaid 圖表是文本驅動的,我們可以根據(jù)關系列表自動生成 Mermaid 流程圖代碼。

from graphviz_render import relationships_to_mermaid

# 示例關系
relationships = [
    Relationship(subject="用戶", predicate="登錄", object="系統(tǒng)"),
    Relationship(subject="系統(tǒng)", predicate="驗證", object="身份"),
    Relationship(subject="數(shù)據(jù)庫", predicate="存儲", object="用戶信息"),
    Relationship(subject="AI助手", predicate="處理", object="請求"),
    Relationship(subject="文檔", predicate="描述", object="功能")
]

mermaid_code = relationships_to_mermaid(relationships)
print("生成的Mermaid代碼:\n")
print(mermaid_code)

Mermaid 輸出示例

四、生成 Graphviz 圖表

Graphviz 可以直接生成圖片文件(PNG、SVG),適合嵌入文檔或網(wǎng)頁。

from pathlib import Path
from graphviz_render import relationships_to_png

output_path = Path("./test_relationships.png")

try:
    relationships_to_png(relationships, output_path)
    print(f"Graphviz圖表已保存到: {output_path.absolute()}")
except Exception as e:
    print(f"生成Graphviz圖表時出錯: {e}")
    print("可能原因:未安裝Graphviz或中文字體缺失")

運行后,你將得到如下關系圖:

用戶 --登錄--> 系統(tǒng)
系統(tǒng) --驗證--> 身份
數(shù)據(jù)庫 --存儲--> 用戶信息
AI助手 --處理--> 請求
文檔 --描述--> 功能

如果中文顯示異常,可以在 Graphviz 中設置字體,例如:

dot.attr(fontname="Microsoft YaHei")

五、完整測試腳本

#!/usr/bin/env python
# -*- coding: utf-8 -*-

from pydantic import BaseModel, Field
from pathlib import Path
from graphviz_render import relationships_to_mermaid, relationships_to_png

class Relationship(BaseModel):
    subject: str = Field(...)
    predicate: str = Field(...)
    object: str = Field(...)

def test_mermaid_generation():
    relationships = [
        Relationship(subject="用戶", predicate="登錄", object="系統(tǒng)"),
        Relationship(subject="系統(tǒng)", predicate="驗證", object="身份"),
        Relationship(subject="數(shù)據(jù)庫", predicate="存儲", object="用戶信息"),
        Relationship(subject="AI助手", predicate="處理", object="請求"),
        Relationship(subject="文檔", predicate="描述", object="功能")
    ]
    mermaid_code = relationships_to_mermaid(relationships)
    print("生成的Mermaid代碼:\n", mermaid_code)
    return relationships

def test_graphviz_generation(relationships):
    output_path = Path("./test_relationships.png")
    try:
        relationships_to_png(relationships, output_path)
        print(f"Graphviz圖表已保存到: {output_path.absolute()}")
    except Exception as e:
        print(f"生成Graphviz圖表時出錯: {e}")

if __name__ == "__main__":
    rels = test_mermaid_generation()
    test_graphviz_generation(rels)

六、小結

  • Mermaid 適合快速生成文檔內的關系圖,依賴文本描述。
  • Graphviz 更專業(yè),適合生成高質量圖片,但需要安裝系統(tǒng)依賴。
  • 中文顯示需要注意字體配置,尤其是 Graphviz。

通過本文,你可以快速測試 Python 生成 Mermaid 和 Graphviz 圖表,并進行中文支持處理。

到此這篇關于Python使用Mermaid與Graphviz實現(xiàn)關系圖表生成的實戰(zhàn)指南的文章就介紹到這了,更多相關Python生成關系圖表內容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • 從.py到.pyd帶你深入了解Python文件類型

    從.py到.pyd帶你深入了解Python文件類型

    作為一個Python開發(fā)者,你肯定經(jīng)常跟.py文件打交道,但Python生態(tài)中其實還有很多其他重要的文件類型,每種都有其獨特的用途,下面小編就和大家詳細講講吧
    2025-11-11
  • Python中文檔處理神器python-docx的用法解析

    Python中文檔處理神器python-docx的用法解析

    Python中有一個python-docx的庫,它允許創(chuàng)建、修改和操作Word文檔,本文將詳細介紹python-docx庫的用法,包括如何創(chuàng)建文檔、添加文本、格式化文本等,需要的可以參考下
    2023-11-11
  • 創(chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子

    創(chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子

    今天小編就為大家分享一篇創(chuàng)建Shapefile文件并寫入數(shù)據(jù)的例子,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-11-11
  • Python使用openpyxl設置Excel單元格公式和工作簿合并

    Python使用openpyxl設置Excel單元格公式和工作簿合并

    這篇文章主要介紹了如何使用Python的openpyxl庫在Excel單元格中設置公式,并展示了如何引用其他工作簿中的單元格內容以及如何合并多個工作簿,需要的朋友可以參考下
    2025-11-11
  • selenium中BasicAuth認證彈框處理

    selenium中BasicAuth認證彈框處理

    本文主要介紹了selenium中BasicAuth認證彈框處理,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-07-07
  • selenium.webdriver中add_argument方法常用參數(shù)表

    selenium.webdriver中add_argument方法常用參數(shù)表

    這篇文章主要介紹了selenium.webdriver中add_argument方法常用參數(shù)表,需要的朋友可以參考下
    2021-04-04
  • python面向對象之類的繼承詳解

    python面向對象之類的繼承詳解

    這篇文章主要介紹了python面向對象之類的繼承詳解,通過概述定義講解了類的繼承的功能和創(chuàng)建方式,寫出了代碼實例供參考,以下就是詳細內容,需要的朋友可以參考下
    2021-07-07
  • 基于Python繪制世界疫情地圖詳解

    基于Python繪制世界疫情地圖詳解

    這篇文章主要介紹了如何使用Python繪制世界疫情地圖,本文通過實例代碼給大家介紹的非常詳細,對大家的學習或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2022-03-03
  • Python中chinesecalendar簡介、安裝、使用方法詳細講解

    Python中chinesecalendar簡介、安裝、使用方法詳細講解

    這篇文章主要介紹了Python中chinesecalendar簡介、安裝、使用方法詳細講解,該庫是判斷某年某月某一天是不是工作日/節(jié)假日。 支持 2004年 至 2023年,包括 2020年 的春節(jié)延長,需要的朋友可以參考下
    2023-03-03
  • python tkinter canvas使用實例

    python tkinter canvas使用實例

    這篇文章主要介紹了python tkinter canvas使用實例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2019-11-11

最新評論

青铜峡市| 南通市| 南充市| 乐业县| 嵊州市| 永定县| 潜山县| 五大连池市| 肃宁县| 武强县| 淅川县| 瓦房店市| 黄平县| 六枝特区| 永城市| 金川县| 彝良县| 威海市| 工布江达县| 台江县| 盐城市| 修武县| 吴旗县| 临夏市| 万荣县| 庆元县| 桃江县| 普兰县| 开远市| 珠海市| 翁源县| 二连浩特市| 改则县| 郸城县| 曲靖市| 交城县| 万全县| 凌云县| 牡丹江市| 凤城市| 天峨县|