Ваши координаты далеко за окном.Если вы запустите plt.xlim()
(или plt.ylim()
), вы увидите, что экстент осей близок к [-1,1], в то время как вы пытаетесь создать прямоугольник с координатами [50,100].
import matplotlib.pyplot as plt
import networkx as nx
from matplotlib.patches import Rectangle
f,ax = plt.subplots(1,1, figsize=(8,5))
G=nx.Graph()
ndxs = [1,2,3,4]
G.add_nodes_from(ndxs)
G.add_weighted_edges_from( [(1,2,0), (1,3,1) , (1,4,-1) , (2,4,1) , (2,3,-1), (3,4,10) ] )
nx.draw(G)
ax.add_patch(Rectangle((0,0),0.1,0.1,linewidth=1,edgecolor='b',facecolor='none'))
Я не знаю, как работает networkx, поэтому я не знаю, есть ли способ правильно рассчитать координаты нужного вам прямоугольника,Одним из подходов было бы нарисовать прямоугольник в координатах осей (верхний левый угол осей - 0,0, а нижний правый - 1,1) вместо координат данных:
import matplotlib.pyplot as plt
import networkx as nx
from matplotlib.patches import Rectangle
f,ax = plt.subplots(1,1, figsize=(8,5))
G=nx.Graph()
ndxs = [1,2,3,4]
G.add_nodes_from(ndxs)
G.add_weighted_edges_from( [(1,2,0), (1,3,1) , (1,4,-1) , (2,4,1) , (2,3,-1), (3,4,10) ] )
nx.draw(G)
ax.add_patch(Rectangle((0.25,0.25),0.5,0.5,linewidth=1,edgecolor='b',facecolor='none', transform=ax.transAxes))