我试图在不同的顶点设置文字并绘制它们,但我不知道如何制作它。 我搜索了graph_tool documentaction,但我无法找到如何制作它,因为例子很混乱...
我的代码是:
from graph_tool.all import *
g = Graph()
g.add_vertex()
// How to something like: g.vertex(0).text = "A"
g.add_vertex()
// How to something like: g.vertex(1).text = "B"
g.add_edge(g.vertex(0),g.vertex(1))
// And how to use it instead of vertex_index
graph_draw(g, vertex_text=g.vertex_index, vertex_font_size=18, output_size=(200, 200), output="test.png")
等待任何线索
答案 0 :(得分:6)
#!/usr/bin/python3
from graph_tool.all import *
g = Graph()
v1 = g.add_vertex()
v2 = g.add_vertex()
e = g.add_edge(v1, v2)
v_prop = g.new_vertex_property("string")
v_prop[v1] = 'foo'
v_prop[v2] = 'bar'
e_prop = g.new_edge_property("string")
e_prop[e] = 'e1'
graph_draw(g, vertex_text=v_prop,edge_text=e_prop, vertex_font_size=18, output_size=(200, 200), output="two-nodes.png")
这应该在图表工具网站上。
如果您可以了解如何设置边长,我想知道。
#!/usr/bin/python3
from graph_tool.all import *
g = Graph()
v1 = g.add_vertex()
v2 = g.add_vertex()
v3 = g.add_vertex()
e2 = g.add_edge(v1, v2)
e1 = g.add_edge(v1, v3)
v_prop = g.new_vertex_property("string")
v_prop[v1] = 'foo'
v_prop[v2] = 'bar'
v_prop[v3] = 'baz'
e_prop = g.new_edge_property("string")
e_prop[e1] = 'edge 1'
e_prop[e2] = 'edge 2'
e_len = g.new_edge_property("double")
e_len[e1] = 10
e_len[e2] = 20
graph_draw(g, vertex_text=v_prop, edge_text=e_prop, edge_pen_width = e_len, vertex_font_size=18, output_size=(800, 800), output="two-nodes.png")
这就是我所使用的,因为我可以操纵宽度...如果我尝试设置长度,它就会抱怨。
答案 1 :(得分:5)
请尝试以下代码:
from graph_tool.all import *
#create your graph object
g = Graph()
#add the property to vertex object
vprop = g.new_vertex_property("string")
#add vertex
vertex_1 = g.add_vertex() #here you create a vertex
vertex_2 = g.add_vertex() #here you create a vertex
#set the value to the vertex property
vprop[vertex_1] = "A" #here you set text to vertex_1 property
vprop[vertex_2] = "B" #here you set text to vertex_2 property
#assign properties as a dic value
g.vertex_properties["name"]=vprop
#add edge
g.add_edge(vertex_1,vertex_2) #add an edge
#draw you graph
graph_draw(
g,
vertex_text=g.vertex_properties["name"],
vertex_font_size=18,
output_size=(200, 200),
output="test.png"
)
此代码适用于我(在OS X 10.10.4和Ubuntu 14.04上)
答案 2 :(得分:1)
实际上它是写的,但不是很清楚。如果查看notes section,可以看到可以设置的所有节点和边缘属性。
可以像这样设置各个属性:
$stateParams === 1
*可以是:文本,大小,形状等,其中包含注释部分中列出的所有属性。
您还可以提供字典来绘制方法:
vertex_* : PropertyMap or arbitrary types (optional, default: None)
edge_* : PropertyMap or arbitrary types (optional, default: None)
具有顶点属性的字典。也可以通过vertex_参数给出单个属性,其中是属性的名称。
vprops : dict (optional, default: None)
具有边缘属性的字典。也可以通过edge_参数给出单个属性,其中是属性的名称。
在您的示例中,draw方法应该是这样的:
eprops : dict (optional, default: None)