我有一个由Networkx创建的无向图,我正在使用pyplot显示它,我希望允许用户指定网格线之间的间距。我不想手动输入勾号,因为这需要知道绘图的最终大小(如果有方法,我想知道),这可能会根据显示的图形而有所不同。
是否有任何方法允许您设置间距量?我找了一会儿,什么也找不到,谢谢。
下面的代码与创建绘图而不是图形有关。
#Spacing between each line
intervals = float(sys.argv[1])
nx.draw(displayGraph, pos, node_size = 10)
plt.axis('on')
plt.grid('on')
plt.savefig("test1.png")
我需要找到一种让网格具有由用户定义的间距间隔的方法。我已经找到了方法,但是它也依赖于你想要多少网格线,这会导致这些线在图上的间隔不均匀
不确定这是否违背了您不手动播放节拍的愿望,但您可以使用
matplotlib.ticker
将节拍设置为给定的间隔:可以使用ticker设置网格的tick locations。用户可以指定MultipleLocator的输入,该输入将“在视图间隔中为基数的倍数的每个整数上设置一个勾号”。下面是一个示例:
编辑
要与Networkx一起使用,您可以使用上面的子块(或其他函数)创建轴,并像这样将该轴传递给draw。
或者可以像在问题中那样调用nx.draw,然后使用gca获取当前轴:
例如,您可以使用
xlim
获取x轴的范围,并使用用户指定的间隔,您应该能够使用ax.axvline
自己绘制网格,如本例中的https://stackoverflow.com/a/9128244/566035希望能帮上忙。
(编辑)这是一个样本。
相关问题 更多 >
编程相关推荐