Мне нужно раскрасить круговую гистограмму цветом, соответствующим углу.
Я нашел пример в библиотеке matplotlib, который окрашивает полярную диаграмму рассеяния так, как мне нужно: https://matplotlib.org/examples/pie_and_polar_charts/polar_scatter_demo.html
Но это диаграмма рассеяния, и мне нужна круговая гистограмма, и я используюкод из ответа на этот вопрос: Круговая гистограмма для Python
Я хочу иметь возможность изменить так, чтобы столбцы имели цвета от первого изображения.Но ax.bar не принимает цвет строки, как это делает диаграмма рассеяния, возвращая ошибку.
Вот код для круговой гистограммы:
import numpy as np
import matplotlib.pyplot as plt
N = 80
bottom = 8
max_height = 4
theta = np.linspace(0.0, 2 * np.pi, N, endpoint=False)
radii = max_height*np.random.rand(N)
width = (2*np.pi) / N
ax = plt.subplot(111, polar=True)
bars = ax.bar(theta, radii, width=width, bottom=bottom)
# Use custom colors and opacity
for r, bar in zip(radii, bars):
bar.set_facecolor(plt.cm.jet(r / 10.))
bar.set_alpha(0.8)
plt.show()
Редактировать: замена радиусов для тета в последней части графика изменяет цвета полос, но не даетцветовая схема, в которой цвета непрерывно меняются во всем диапазоне круга.Я попытался нормализовать тета в градусах и радианах, как это было предложено в комментариях:
bar.set_facecolor(math.degrees(r)/360))
и
bar.set_facecolor(plt.cm.jet(r/2*np.pi))
Оба из них дают неправильное решение.