Как изменить частоту маркировки осей x и y в matplotlib в python? - PullRequest
0 голосов
/ 15 апреля 2020

Я пытаюсь построить круг с показанной сеткой. Я написал следующий скрипт, который дает картинку ниже. Однако метки на осях мешают друг другу. Как сделать так, чтобы метка появилась (.., - 10, -5,0,5,10, ...), сохраняя сетку, как показано на рисунке ниже ?. Я хочу сохранить размер ячейки сетки как размер 1 * 1.

Я пытался использовать plt.locator_params (), но размер ячейки сетки изменился и стал больше.

import numpy as np 
import matplotlib.pyplot as plt
import math
from matplotlib.pyplot import figure

R1=28

n=64

t=np.linspace(0, 2*np.pi, n)    

x1=R1*np.cos(t)
y1=R1*np.sin(t)

plt.axis("square")

plt.grid(True, which='both', axis='both')

plt.xticks(np.arange(min(x1)-2,max(x1)+2, step=1))
plt.yticks(np.arange(min(y1)-2,max(y1)+2, step=1))

#plt.locator_params(axis='x', nbins=5)
#plt.locator_params(axis='y', nbins=5)

plt.plot(x1,y1)

plt.legend()

plt.show()

enter image description here

1 Ответ

2 голосов
/ 15 апреля 2020

Не эксперт по matplotlib, так что может быть лучший способ сделать это, но, возможно, что-то вроде следующего:

from matplotlib.ticker import MultipleLocator

...

fig, ax = plt.subplots(figsize=(6, 6))

ax.plot(x1,y1)

ax.xaxis.set_minor_locator(MultipleLocator())
ax.xaxis.set_major_locator(MultipleLocator(5))
ax.yaxis.set_minor_locator(MultipleLocator())
ax.yaxis.set_major_locator(MultipleLocator(5))

ax.grid(True, which='both', axis='both')

plt.show()

enter image description here

...