使用 dagre-d3 库显示图形。

函数签名[source]

st.graphviz_chart(figure_or_dot, use_container_width=False)

参数

figure_or_dot (graphviz.dot.Graph, graphviz.dot.Digraph, graphviz.sources.Source, str)

要显示的Graphlib图形对象或dot字符串

use_container_width (bool)

是否用父容器的宽度覆盖图形的原生宽度。如果use_container_widthFalse (默认),Streamlit会根据绘图库设置图表的宽度以适应其内容,直到父容器的宽度。如果use_container_widthTrue,Streamlit会将图形的宽度设置为与父容器的宽度匹配。

示例

import streamlit as st
import graphviz

# Create a graphlib graph object
graph = graphviz.Digraph()
graph.edge("run", "intr")
graph.edge("intr", "runbl")
graph.edge("runbl", "run")
graph.edge("run", "kernel")
graph.edge("kernel", "zombie")
graph.edge("kernel", "sleep")
graph.edge("kernel", "runmem")
graph.edge("sleep", "swap")
graph.edge("swap", "runswap")
graph.edge("runswap", "new")
graph.edge("runswap", "runmem")
graph.edge("new", "runmem")
graph.edge("sleep", "runmem")

st.graphviz_chart(graph)

或者你可以使用GraphViz的Dot语言从图表中渲染图表:

st.graphviz_chart('''
    digraph {
        run -> intr
        intr -> runbl
        runbl -> run
        run -> kernel
        kernel -> zombie
        kernel -> sleep
        kernel -> runmem
        sleep -> swap
        swap -> runswap
        runswap -> new
        runswap -> runmem
        new -> runmem
        sleep -> runmem
    }
''')
forum

还有问题吗?

我们的 论坛 充满了有用的信息和Streamlit专家。