python - 将图例或背景图像添加到 Igraph 0.6 (for python) 图中

标签 python graph plot legend igraph

我通过使用带有 Cairo 扩展的 Igraph 0.6 进行绘图,使用 python 2.7 绘制图表。一切都很好,但我想在每次绘制时添加一个图例。

如果我只能在绘图中添加背景图像,那也很好,因为我制作了一个大小合适的白色图像,并且已经添加了图例(带有一般符号解释)。

这些我都做不到,也无法通过谷歌搜索找到。也许我只是无法进入 Google 的右侧或在 Igraph 文档中找到正确的关键字。

gp = 图()。这是全局性的。有顶点和边序列等。有一些列表包含有关顶点和边的更多信息(例如:self.gp_cities、self.road_kind)以下是我的绘图方式:

def showitshort(self,event):
    global gp
    layout = gp.layout("kk")
    color_dict = {"1": "red", "20": "blue"}
    visual_style = {}
    visual_style["vertex_size"] = 15
    visual_style["vertex_color"] = ["yellow"]
    visual_style["edge_color"] = [color_dict[elektro] for elektro in self.road_kind]
    visual_style["vertex_label"] = self.gp_cities
    visual_style["layout"] = layout
    visual_style["bbox"] = (4000, 2500)
    visual_style["margin"] = 100
    visual_style["vertex_label_dist"] = 5
    visual_style["vertex_shape"] = "triangle-up"
    plot(gp,**visual_style)

我认为正确的链接就足够了。请帮忙一点,提前谢谢您!

最佳答案

诀窍在于,您可以将现有的 Cairo 曲面传递到 plot 中,它会简单地在该曲面上绘制图形,而不是创建新曲面。因此,基本上,您需要构建一个 Cairo 曲面(例如,ImageSurface),使用标准 Cairo 调用在该曲面上绘制图例,然后将曲面传递给 plot 作为如下:

plot(gp, target=my_surface, **visual_style)

据我所知,以这种方式调用时,plot()不会显示图形本身;它只会返回一个 Plot 对象。您可以调用 Plot 对象的 show() 方法来显示它,或者调用 save() 方法将其保存到 PNG 文件中.

关于python - 将图例或背景图像添加到 Igraph 0.6 (for python) 图中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15159362/

相关文章:

algorithm - 在二维图中放置互连节点的最佳方法是什么?

javascript - 关于jquery中的气泡显示

python - 如何有效地找到有向无环图中由k个节点组成的所有路径?

matlab - 如何在 Matlab 中显示 100x1 矢量数据的经验 pdf?

c# - 获取 Windows 窗体的大小

python - 是否可以在 django 中通过 URL 查询文件?

python - 选择什么web框架

python - 将多个 cloud-sql-instances 添加到 Flexi 中的 beta-settings

单击绘图时绘制点的 Python GUI?

python - for 循环不会迭代函数中的字符串,但不会迭代函数 - python 3