设置绘图的网格频率

问题描述 投票:0回答:1

我有一个非常简单的代码,通过坐标 (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]]
))

输出 enter image description here

但我想在这个图表中添加一个网格。在 x 轴上,频率为 100,在 y 轴上,频率为 200。

enter image description here

我尝试了互联网上的一些选项,但没有得到想要的结果。请告诉我怎样才能实现这个目标

python matplotlib plot
1个回答
0
投票

您可以使用 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()

enter image description here

© www.soinside.com 2019 - 2024. All rights reserved.