我有一个非常简单的代码,通过坐标 (x, y) 绘制点
def separate_file(coordinates):
new_document_x, new_document_y = zip(*coordinates)
plt.gca().invert_yaxis()
plt.plot(new_document_x, new_document_y, "r", marker='.', linestyle='None')
plt.show()
print(separate_file(
[[184, 60], [33, 76], [33, 128], [33, 180], [327, 149], [33, 325], [399, 598], [221, 625]]
))
但我想在这个图表中添加一个网格。在 x 轴上,频率为 100,在 y 轴上,频率为 200。
我尝试了互联网上的一些选项,但没有得到想要的结果。请告诉我怎样才能实现这个目标
您可以使用 Axis 刻度线来制作您的自定义
grid
(此处描述的逻辑相同):
import matplotlib.pyplot as plt
def separate_file(coo, xoff=100, yoff=200):
def mloc(axis, mul):
axis.set_major_locator(plt.MultipleLocator(mul))
axis.set_minor_locator(plt.MultipleLocator(mul/2))
axis.set_minor_formatter(plt.ScalarFormatter())
ax = plt.gca()
ax.invert_yaxis()
ax.scatter(*zip(*coo), c="b", s=10, zorder=2)
# grid
mloc(ax.xaxis, xoff)
mloc(ax.yaxis, yoff)
ax.tick_params(which="both", length=3)
ax.grid(which="major", c="orange", lw=1.5)
plt.show()