Полярная метка, интервал, матплотлиб - PullRequest
0 голосов
/ 28 мая 2018

Стандартный интервал для matplotlib составляет 45 °.Как я могу изменить этот интервал до 15 °?поэтому я иду от этого изображения ниже

45 degrees interval

к этому изображению

15 degrees interval

Проблема в том, что я не могу найти нужную документацию.Это текущий используемый код:

#Define arrays
def processDir(file, output, title):
    angles=list()
    values=list()
lines = [line.rstrip('\n') for line in open(file)]
for line in lines: # Iterate lines
    stringElement = str.split(line, " ") # Split elements
    angle = int(stringElement[0])
    value = float(stringElement[1])

    angles.append((angle/360)*2*3.1415926)
    values.append(value)
ax = plt.subplot(111, projection='polar')
plt.polar(angles, values, label=title, color="darkviolet")


ax.legend(bbox_to_anchor=(0., 1.1, -1., .102), loc=3,
       ncol=2, mode="expand", borderaxespad=0., frameon=False)

ax.grid(True)
axmin = ax.get_rmin()
axmax = ax.get_rmax()
#Zorg ervoor dat de stap 6dB per lijn is
step = 6
# generate new ticklist with desired step size
axlist = np.arange(axmin, axmax + step, step)
# set new ticks
ax.set_rticks(axlist)

ax.figure.set_size_inches(8, 5)
plt.savefig(output)
plt.show()


processDir("test.txt", "no output", "My Title")

С текстовым файлом:

0 54.3
15 54.4
30 54.2
45 54.2
60 54.4
75 54.8
90 55.6
120 56.3
150 57.5
180 57
210 56.8
240 56.8
270 57.4
300 57.1
330 57.2
360 54.3

1 Ответ

0 голосов
/ 28 мая 2018

Вы действительно должны предоставить Минимальный, Полный и Проверяемый пример , в противном случае вопрос может быть отложен.
К счастью, я помню ваш предыдущий вопрос .Вы можете адаптировать x-ticks также в полярном графике.Используя ваш предыдущий пример кода:

def processDir(file, output, title):
    angles=list()
    values=list()
    lines = [line.rstrip('\n') for line in open(file)]
    for line in lines: # Iterate lines
        stringElement = str.split(line, " ") # Split elements
        angle = int(stringElement[0])
        value = float(stringElement[1])

        angles.append((angle/360)*2*3.1415926)
        values.append(value)

    ax = plt.subplot(111, projection='polar')
    plt.polar(angles, values, label=title, color="darkviolet")
    #here we set the xticks to 24 values, i.e. 15°
    ax.set_xticks(np.linspace(0,  2 * np.pi, 24, endpoint = False))

    ax.text(-0.4, 0.3, 'Test\nTest', horizontalalignment = 'center', verticalalignment = 'center', transform = ax.transAxes)
    ax.legend(bbox_to_anchor=(0., 1.1, 1., .102), loc=3,
           ncol=2, mode="expand", borderaxespad=0., frameon=False)

    ax.grid(True)
        ax.figure.set_size_inches(8, 5)
    plt.show()

processDir("test.txt", "no output", "My Title")

И, оглянувшись на свой предыдущий вопрос, вы могли бы в равной степени решить и вашу предыдущую проблему:

ax.set_yticks(np.linspace(0, 60, 11))

Если мы интегрируем это, результат будетбыть:

enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...