Переместить радиальные метки на полярном графике в matplotlib

Из примеров matplotlib:

import numpy as np
import seaborn as sbs
import matplotlib.pyplot as plt

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

ax = plt.subplot(111, polar=True)
ax.plot(theta, r, color='r', linewidth=3)
ax.set_rmax(2.0)
ax.grid(True)

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

полярный график

Как переместить радиальные галочки (0,5, 1,0, 1,5, 2,0) под другим углом, скажем, на 120 градусов?


person alkamid    schedule 01.04.2015    source источник


Ответы (2)


В версии 1.4 или выше вы можете использовать «set_rlabel_position». например чтобы разместить радиальные деления на длинной линии, скажем, под углом 135 градусов:

ax.set_rlabel_position(135)

Соответствующая документация находится здесь, немного скрытая под «проекции».

Добавление приведенной выше строки дает (у меня нет seaborn, поэтому форматирование matplotlib по умолчанию):

пример полярной оси показывает 135 градусов

До версии 1.4 ax.set_rgrids может принимать аргумент угла.

person Ajean    schedule 01.04.2015

Я попытался запустить код примера с правкой из ответа @alkamid, но в итоге закончился ошибкой.

AttributeError: 'PolarAxesSubplot' object has no attribute 'set_rlabel_position'

Моя версия matplotlib 1.3.1. Однако я нашел этот ответ положение метки оси X на полярной диаграмме python matplolib со следующей строкой кода:

ax.set_rgrids([5,10], angle=22)

Это сработало для меня и дало желаемый результат.

person rikisa    schedule 19.08.2015