matplotlib: добавление отступов / смещений в метки галочек полярных графиков

есть ли способ увеличить заполнение / смещение меток тиков полярного графика (тета)?

import matplotlib
import numpy as np
from matplotlib.pyplot import figure, show, grid

# make a square figure
fig = figure(figsize=(2, 2))
ax = fig.add_axes([0.1, 0.1, 0.8, 0.8], polar=True, axisbg='#d5de9c')
ax.set_yticklabels([])

r = np.arange(0, 3.0, 0.01)
theta = 2*np.pi*r
ax.plot(theta, r, color='#ee8d18', lw=3)
ax.set_rmax(2.0)
show()

Я бы хотел, чтобы метки тета-тиков были дальше от Полярного графика, чтобы они не перекрывались.

enter image description here

1 ответов


прежде всего; видя, как вы указали figsize быть (2,2) и имея ax занимают 80 % от ширины и высоты, у вас есть мало пространство осталось, чтобы заполнить ticklabels. Это может привести к ticklabels быть "отрезаны" на краях фигуры. Это может быть легко "исправлено" либо

  • указание больше figsize
  • сделать ax занимают меньше места на фигуре (2,2) размера
  • использовать меньший размер шрифта для ticklabels

или любая комбинация из них. Другое, на мой взгляд, лучшее решение этой "проблемы" - использовать подзаголовок, а не указывать Axesс границами;

ax = fig.add_subplot(111, polar=True, axisbg='#d5de9c')

как это позволяет использовать метод tight_layout() который автоматически настраивает макет фигуры, чтобы красиво включать все элементы.

затем к реальной проблеме под рукой; обивка. На PolarAxes вы можете установить, среди прочего, радиальное размещение тета-клещей. Это делается путем указания доли радиуса полярных осей, где вы хотите, чтобы метки ticklabels были помещены в качестве аргумента