在Pygraphviz中设置输出图像的宽度和高度可以通过以下方式实现:
Pygraphviz是Graphviz的Python接口,用于绘制图形(如流程图、关系图)。输出图像的尺寸由graph
或node
对象的属性控制,常用属性包括:
size
:设置画布尺寸(格式为"width,height"
,单位默认为英寸)fixedsize
:强制节点尺寸固定width
/height
:单独设置节点或图的宽高通过graph_attr
设置画布大小(以英寸为单位):
import pygraphviz as pgv
# 创建有向图
G = pgv.AGraph(directed=True)
G.graph_attr.update(size="5,3") # 5英寸宽,3英寸高
G.add_edge("A", "B")
# 输出为PNG
G.draw("output.png", format="png", prog="dot")
通过node_attr
控制节点大小(需启用fixedsize
):
G = pgv.AGraph()
G.node_attr.update(fixedsize="true", width="1", height="0.5") # 节点宽1英寸,高0.5英寸
G.add_node("Node1")
G.draw("node.png", prog="dot")
若需精确控制像素尺寸,可结合dpi
参数计算:
desired_width_px = 800
desired_height_px = 600
dpi = 100
width_in = desired_width_px / dpi # 转换为英寸
height_in = desired_height_px / dpi
G = pgv.AGraph()
G.graph_attr.update(size=f"{width_in},{height_in}")
G.add_edge("X", "Y")
G.draw("output_dpi.png", format="png", prog="dot", dpi=str(dpi))
graph_attr
或拼写错误(如size
而非scale
)。fixedsize="true"
(若调整节点尺寸)。ratio
属性强制宽高比(如ratio="fill"
填充画布)。import pygraphviz as pgv
# 创建图并设置尺寸
G = pgv.AGraph()
G.graph_attr.update(
size="4,2", # 画布4x2英寸
ratio="compress" # 压缩空白区域
)
G.node_attr.update(
shape="box",
fixedsize="true",
width="0.8",
height="0.4"
)
G.add_nodes_from(["A", "B", "C"])
G.add_edges_from([("A", "B"), ("B", "C")])
# 输出图像(支持PNG/SVG等)
G.draw("custom_size.png", prog="dot", format="png")
通过上述方法,可灵活控制Pygraphviz输出图像的尺寸。
没有搜到相关的文章