我通过使用带有 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/