Как я могу уменьшить или иным образом повлиять на количество радиальных делений на полярном графике?

Мне нужен полярный график, но с уменьшенным количеством радиальных (r размер) тиков. Я уже пробовал предлагаемые решения из других вопросов, таких как

pyplot.locator_params(axis='y', nticks=6)

но вроде ничего не изменилось.

Я пытался использовать pyplot.gca().set_rticks([...]), но для этого нужно заранее знать тики, а мне интересно просто установить их максимальное количество.

Что еще я мог бы попробовать, чтобы уменьшить количество тиков (или кругов)?


person quazgar    schedule 06.12.2017    source источник


Ответы (1)


Вы действительно можете использовать ax.set_rticks() для указания конкретных меток, которые вы хотите, например.

ax.set_rticks([0.5, 1, 1.5, 2])

как показано в его примере на странице matplotlib.

В некоторых случаях это может быть нежелательно, и предпочтительнее использовать обычные параметры локатора. Вы можете получить локатор через ax.yaxis.get_major_locator().base и установить параметры через .set_params(). Здесь вы хотите изменить параметр nbins,

ax.yaxis.get_major_locator().base.set_params(nbins=3)

Полный пример:

import numpy as np
import matplotlib.pyplot as plt

r = np.arange(0, 2, 0.01)
theta = 2 * np.pi * r

ax = plt.subplot(111, projection='polar')
ax.plot(theta, r)
ax.set_rmax(2)

ax.yaxis.get_major_locator().base.set_params(nbins=3)

ax.set_title("A line plot on a polar axis", va='bottom')
plt.show()

введите здесь описание изображения

person ImportanceOfBeingErnest    schedule 06.12.2017
comment
Да, ax.yaxis.get_major_locator().base.set_params(nbins=3) это именно то, что я искал, большое спасибо! - person quazgar; 06.12.2017