我有一个由 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
将刻度设置为您给定的间隔:
import matplotlib.pyplot as plt
import matplotlib.ticker as plticker
fig,ax=plt.subplots()
#Spacing between each line
intervals = float(sys.argv[1])
loc = plticker.MultipleLocator(base=intervals)
ax.xaxis.set_major_locator(loc)
ax.yaxis.set_major_locator(loc)
# Add the grid
ax.grid(which='major', axis='both', linestyle='-')
关于python - PyPlot - 设置绘图的网格线间距,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30482727/