Ответ 1
Прежде всего; видя, что вы указали, что figsize
, равный (2,2) и имеющий ax
, занимают 80% от ширины и высоты, у вас осталось очень мало места для прокладки меток. Это может привести к тому, что метки метки будут "обрезаны" на рисунке egdes. Это можно легко зафиксировать либо с помощью
- Указание большего размера
figsize
- Сделать
ax
занимать меньше места на фигуре (2,2) - Используйте более мелкие шрифты для метки метки
или любую их комбинацию. Другое, на мой взгляд, лучшее решение этой "проблемы" заключается в использовании подзадачи, а не в определении границ Axes
;
ax = fig.add_subplot(111, polar=True, axisbg='#d5de9c')
поскольку это позволяет использовать метод tight_layout()
, который автоматически настраивает макет фигуры, чтобы хорошо включать все элементы.
Тогда к реальной проблеме; прокладка. На PolarAxes
вы можете установить, помимо прочего, радиальное размещение тета-клещей. Это делается путем указания доли радиуса полярных осей, где вы хотите, чтобы метки метки были помещены в качестве аргумента в параметр frac
параметра PolarAxes
set_thetagrids()
. Аргумент должен быть частью радиуса осей, где вы хотите разместить метки. То есть для frac
1 метки будут помещены внутри осей, а для frac
> 1 они будут размещены вне осей.
Тогда ваш код может выглядеть примерно так:
import numpy as np
from matplotlib.pyplot import figure, show, grid, tight_layout
# make a square figure
fig = figure(figsize=(2, 2))
ax = fig.add_subplot(111, 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)
# tick locations
thetaticks = np.arange(0,360,45)
# set ticklabels location at 1.3 times the axes' radius
ax.set_thetagrids(thetaticks, frac=1.3)
tight_layout()
show()
Вы должны попробовать разные значения для frac
, чтобы найти значение, которое наилучшим образом подходит для ваших нужд.
Если вы не укажете значение параметра frac
, как указано выше, то есть frac
имеет значение по умолчанию None
, код выводит график, как показано ниже. Обратите внимание на то, как радиус графика больше, так как метки не занимают столько места, сколько в приведенном выше примере.