Я пытаюсь пометить метки на графике полярного сектора в Matplotlib в градусах в соответствии с указанным форматом (т. Е. С плавающей точкой с двумя десятичными знаками), но выполняю обаэто явно не поддерживается.
Я могу пометить отметки как градусы или с указанными десятичными знаками, но не обоими.Обратите внимание, что Matplotlib по умолчанию принимает отметки в градусах:
Но после того, как я применил формат к отметкам, используя ax.xaxis.set_major_formatter()
, вместо этого отображаются радианы:
Как применить формат градуса, указав при этом десятичный формат?
Примечание. Преобразование меток в градусы (например, numpy.rad2deg
) не работает, поскольку ax.set_xticks()
интерпретирует аргумент только как радианы (и все же Matplotlib по умолчанию отображает их как градусы ...)
Пример кода:
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.ticker import FormatStrFormatter
minTheta = 0.42; maxTheta = 0.55
fig = plt.figure()
ax = fig.add_subplot(111, projection='polar')
#create four tick labels (in radians) dynamically based on the theta range
ticks = np.linspace(minTheta, maxTheta, 4)
ax.set_xticks(ticks)
#disable or enable the following line to change the tick display format*************
ax.xaxis.set_major_formatter(FormatStrFormatter('%.2f'))
#Adjust the sector window: you must call these AFTER setting the ticks, since setting the ticks
#actually adjusts the theta range window. This must be in degrees.
ax.set_thetamin(np.rad2deg(minTheta))
ax.set_thetamax(np.rad2deg(maxTheta))