使坐标系在matplotlib和graph tool之间一致

使坐标系在matplotlib和graph tool之间一致,matplotlib,graph-tool,Matplotlib,Graph Tool,非常方便,可以将matplotlib Axis对象指定为用于绘制的画布。不太方便,坐标系没有对齐。下面的脚本演示了这个问题。有没有比手动反转给定给一个或另一个的坐标更容易的修复方法 import matplotlib matplotlib.use('cairo') from matplotlib import pyplot import graph_tool.all x = [0, 1] y = [0, 1] g = graph_tool.Graph() pos = g.new_vertex

非常方便,可以将matplotlib Axis对象指定为用于绘制的画布。不太方便,坐标系没有对齐。下面的脚本演示了这个问题。有没有比手动反转给定给一个或另一个的坐标更容易的修复方法

import matplotlib
matplotlib.use('cairo')
from matplotlib import pyplot
import graph_tool.all

x = [0, 1]
y = [0, 1]

g = graph_tool.Graph()
pos = g.new_vertex_property('vector<float>')
v_0 = g.add_vertex()
v_1 = g.add_vertex()
g.add_edge(u, v)
pos[v_0] = [0,0]
pos[v_1] = [1,1]

pyplot.plot(x, y)
ax = pyplot.gca()
graph_tool.draw.graph_draw(g, pos=pos, mplfig=ax)
pyplot.savefig('flip.png')
导入matplotlib
matplotlib.use('cairo')
从matplotlib导入pyplot
导入图形工具
x=[0,1]
y=[0,1]
g=图形工具。图形()
pos=g.新的顶点属性(“向量”)
v_0=g.添加_顶点()
v_1=g.添加_顶点()
g、 添加_边(u,v)
位置[v_0]=[0,0]
位置[v_1]=[1,1]
pyplot.plot(x,y)
ax=pyplot.gca()
图形工具绘制图形绘制(g,pos=pos,mplfig=ax)
pyplot.savefig('flip.png'))

这是一个bug。它现在已在当前git版本中修复。同时,您必须手动翻转坐标,包括:

    x, y = ungroup_vector_property(pos, [0, 1])
    y.fa *= -1
    y.fa -= y.fa.min()
    pos = group_vector_property([x, y])