我想在一个图形工具图中存储一个类的实例,每个节点一个对象(或者作为图形工具调用它们的"顶点").我试图使用顶点属性,因为这似乎是这样做的方式.
class MyClass(object):
def __init__(self, title):
self.title = title
graph = Graph()
my_obj = MyClass('some title')
vertex = graph.add_vertex()
vprop = graph.new_vertex_property('object')
vprop[vertex] = my_obj
Run Code Online (Sandbox Code Playgroud)
现在我想读回我的类对象,例如迭代所有节点/顶点并打印它们的标题:
for vertex in self.graph.vertices():
# TODO: how to access titles ? this just prints
# "<Vertex object with index '0' at 0xb1e4bac>"
print repr(vertex) + '\n'
Run Code Online (Sandbox Code Playgroud)
另外,如何从图形中获取具有特定标题的类对象?一种方法似乎是创建一个顶点过滤器使用graph.set_edge_filter(...)并应用它 - 这似乎是一个相当昂贵的操作,考虑到我想要的只是获得一个单个对象.我真的不想将我自己的对象标题/顶点索引映射维护为IMO,这是图的任务之一.
我错过了一些基本的东西吗?
我尝试使用自制软件在Mac OSX 10.10上安装图形工具.brew构建过程工作正常,但是当我尝试导入图形工具时,我得到了这个问题中描述的错误.自制软件的另一个问题是我总是为python2.7构建图形工具,并将软件包安装在Python 2.7 sit-packages文件夹中.但我想在Python 3.4中使用它.这些是我尝试从源代码构建图形工具的原因.
该./configure命令也自动使用Python 2.7.所以我用它传递了所需的Python版本./configure PYTHON=python3.4
然后它会检测正确的版本以及相关路径,但会因以下错误而崩溃:
configure:error:
无法将测试程序链接到Python.也许主要的Python库已经安装在一些非标准的库路径中.如果是,请通过LDFLAGS环境变量将其传递给configure.
示例:./ configure LDFLAGS =" - L/usr/non-standard-path/python/lib"================================================== ====================错误!您可能必须为您的发行版安装Python包的开发版本.这个包的确切名称因其而异.
================================================== ====================
使用和不使用PYTHON变量集时会发生错误.从./configure我的输出我可以看到一切正常,除了最后一行,它说:
检查python开发环境的所有组件的一致性...没有
上述行是什么意思,我如何在我的机器上正确安装图形工具?
我在 Python 3.5.1 上使用图形工具。我有一个单词图,在押韵的单词之间有边缘。当我使用graph-tool的draw函数时,如果顶点设置太大,会导致所有顶点重叠,但是如果它们太小,我必须将字体变小,然后难以辨认。有没有办法设置最小边长或强制顶点不重叠?
代码示例:
import graph_tool.all as gt
G = gt.load_graph("G.gt")
gt.graph_draw(G, vertex_text=G.vertex_properties.word, vertex_font_size=10, output_size=(1000, 1000), output="G.png", vertexsize=10)
Run Code Online (Sandbox Code Playgroud)
我发现图形工具文档非常模糊,比其他类似的库更加神秘.
我真的无法弄清楚如何从图形工具中的图形中"提取"组件(也称为连接组件).我想将子图保存在单独的文件中作为单独的图形,但我不明白如何从我的Graph对象开始识别它们.
我试图使用Homebrew来安装graph-tool,但python3找不到它.
brew tap homebrew/science
brew install graph-tool
Run Code Online (Sandbox Code Playgroud)
据说这个包安装在homebrew/science/graph-tool-2.22_1我刚找到的地方/usr/local/Homebrew/Library/Taps/homebrew/homebrew-science/graph-tool.rb.
当我尝试在python3中导入图形工具时,它显示了这一点
from graph_tool.all import *
ImportError: No module named 'graph_tool'
我正在使用python3.
which python3
/usr/local/bin/python3
有没有办法可以使用Homebrew中安装的graph_tool包?
任何帮助,将不胜感激.
哪些库/包对于分析多层网络最有效(在内存使用和速度方面)?
理想情况下,这个问题的答案将涉及使用每个库创建一个预定义的网络并计算一些中心性度量(例如页面排名),对每个库使用的时间和 RAM 内存量进行基准测试。与此基准类似的东西在这里。
我对R或中的库/包特别感兴趣Python。我在下面列出了一些我推荐的软件包,但请随意将其他软件包添加到列表中:
图书馆位于Python:
图书馆位于R:
观测值。我只尝试过 MuxViz,而且非常喜欢它。它非常容易使用和理解,但我发现它可以更快。
我正在用大标签绘制图表。有没有办法包裹标签,使它们适合尺寸的顶点。
这就是我到目前为止所拥有的
p1 = gt.graph_draw(gr1,
output_size=(2000, 6000),
pos=pos1,
vertex_shape="square",
bg_color=(256, 256, 256, 1),
vertex_size=20,
output='test1.png',
vertex_text=gr1.vp['label'],
vertex_fill_color=gr1.vp['color'])
Run Code Online (Sandbox Code Playgroud)
在Pythons graph_tool中,是否有一种简单的方法来计算加权度分布(出局,进入或所有边缘的权重之和)?
在Stats包中,vertex_hist给出了未加权的in-degree,out-degree和total-degree直方图,但似乎没有办法获得这些的加权版本.
注意:我正在使用31,000个顶点和> 1000万个边.我正在寻找一种方法来尽可能地利用graph_tool.
我已经使用图形工具库有一段时间了,到目前为止我还没有真正使用过它的大部分绘图功能。今天,当尝试使用graph_tool.draw.graph_draw时,我意识到我最初配置的 graph-tool 没有cairo,
./configure --disable-cairo
Run Code Online (Sandbox Code Playgroud)
这正是 graph_draw 使用的图形库。如果我现在安装 cairo,有没有办法激活依赖 cairo 的 graph_tool 功能,而无需删除并重新安装整个 graph_tool 模块?这将节省几个小时的重新安装时间。(在我的机器上制作过程大约需要 3 个小时)。
这是一个关于图形工具的一个荒谬的基本问题,这应该是很容易弄清楚如何使用文档来解决,但我正在旋转.我不怀疑文档是否全面,但它肯定不会让这很容易.
目标:给定图G,根据G的顶点列表提取诱导子图.
我知道我应该以GraphView某种方式这样做.我明白了.我也明白我需要为此做一个顶点PropertyMap.但究竟应该创造什么呢?
这里的文档非常缺乏.例如,PropertyMaps上的页面说每个PropertyMap都可以是某种类型,但我还没弄清楚这意味着什么.这些类型代表什么?我什么时候想要使用另一种类型?鉴于显然PropertyMaps对图形工具的有效使用有多重要,我对文档的不清楚感到有点困惑.
对于这个问题,我得到了模糊的感觉,我需要使用布尔类型,因为我可能想要将子图中我想要的顶点设置为"true",而我不希望子图中的顶点为"false". " 但这是否意味着PropertyMap我创建的需要与原始图G中的节点数相同?或者我可以只提供一个节点列表,并以某种方式让它被理解为那些是唯一被设置为True?