толщина тета сетки matplotlib.pyplot - PullRequest
0 голосов
/ 04 декабря 2018

У меня проблемы с форматированием тета-сетки полярного графа.Самый внешний круг кажется более тонким, чем другие, есть ли способ исправить это?Я заметил, что удаление set_rmax решает проблему, но приводит к тому, что радиусные линии сетки выходят за пределы круга - я этого не хочу.Пример кода ниже.

#!/usr/bin/python3
# -*- coding: utf-8 -*-

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_axes([0, .15, 1, .75],
                  frameon=False,
                  projection='polar',
                  rlabel_position=22.5,
                  theta_offset=(-np.pi / 2))
theta = list(map(lambda x: x * np.pi / 180,
                 [i for i in range(0, 360, 15)]))
values = [i for i in range(0, 24)]
values2 = [i for i in range(24, 0, -1)]

ax.plot(theta, values, label='zzz')
ax.plot(theta, values2, label='xxx')
ax.set_rticks([i * 24 / 4 for i in range(0, 5)])
ax.set_yticklabels([])
ax.set_thetagrids(angles=[0, 30, 60, 90, 120, 150, 180,
                          210, 240, 270, 300, 330],
                  labels=list(map(lambda x: str(x)
                                  + u'\N{DEGREE SIGN}',
                                  [0, 30, 60, 90, 120, 150, 180])))
fig.legend(frameon=False,
           loc='lower left',
           ncol=1)

ax.set_rmax(24)
plt.show()

1 Ответ

0 голосов
/ 04 декабря 2018

Вы выключили рамку полярного графика.Следовательно, крайний круг даже не показан.Снова включив рамку и установив серый цвет внешнего круга, вы получите желаемый результат.

import matplotlib.pyplot as plt
import numpy as np

fig = plt.figure()
ax = fig.add_axes([0, .15, 1, .75],
                  frameon=True,
                  projection='polar',
                  rlabel_position=22.5,
                  theta_offset=(-np.pi / 2))
theta = list(map(lambda x: x * np.pi / 180,
                 [i for i in range(0, 360, 15)]))
values = [i for i in range(0, 24)]
values2 = [i for i in range(24, 0, -1)]

ax.plot(theta, values, label='zzz')
ax.plot(theta, values2, label='xxx')
ax.set_rticks([i * 24 / 4. for i in range(0, 5)])
ax.set_yticklabels([])
ax.set_thetagrids(angles=[0, 30, 60, 90, 120, 150, 180,
                          210, 240, 270, 300, 330],
                  labels=list(map(lambda x: str(x)
                                  + u'\N{DEGREE SIGN}',
                                  [0, 30, 60, 90, 120, 150, 180])))
fig.legend(frameon=False,
           loc='lower left',
           ncol=1)

ax.set_rmax(24)
ax.spines["polar"].set_color(plt.rcParams["grid.color"])
ax.spines["polar"].set_linewidth(plt.rcParams["grid.linewidth"])

plt.show()

enter image description here

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