проекции
matplotlib.projections
-
class matplotlib.projections.ProjectionRegistry[source] -
Bases:
objectУправляет набором проекций, доступных системе.
-
get_projection_class(name)[source] -
Получить класс проекции по её имени.
-
get_projection_names()[source] -
Получить список имён всех зарегистрированных в данный момент проекций.
-
register(*projections)[source] -
Зарегистрировать новый набор проекций.
-
-
matplotlib.projections.get_projection_class(projection=None)[source] -
Получить класс проекции по её имени.
Если projection равно None, возвращается стандартная прямолинейная проекция.
-
matplotlib.projections.get_projection_names()[source] -
Получить список допустимых имён проекций.
-
matplotlib.projections.process_projection_requirements(figure, *args, polar=False, projection=None, **kwargs)[source] -
Обрабатывает аргументы/используемые ключи в add_axes/add_subplot/gca, возвращая:
(axes_proj_class, proj_class_kwargs, proj_stack_key)
что можно использовать для инициализации/идентификации новых осей.
-
matplotlib.projections.register_projection(cls)[source]
matplotlib.projections.polar
-
class matplotlib.projections.polar.InvertedPolarTransform(axis=None, use_rmin=True, _apply_theta_transforms=True)[source] -
Bases:
matplotlib.transforms.TransformОбратное преобразование для полярной проекции, отображающее декартовы координаты x и y обратно в theta и r.
-
input_dims = 2
-
inverted()[source] -
Возвращает соответствующее обратное преобразование.
Возвращаемое значение этого метода следует рассматривать как временное. Обновление self не приводит к соответствующему обновлению его обратного копирования.
x === self.inverted().transform(self.transform(x))
-
is_separable = False
-
output_dims = 2
-
transform_non_affine(xy)[source] -
Выполняет только неаффинное преобразование.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях, это, как правило, эквивалентно
transform(values). В аффинных преобразованиях это всегда ничто.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы, принимает массив NumPy длины
input_dimsи возвращает массив NumPy длиныoutput_dims.
-
-
class matplotlib.projections.polar.PolarAffine(scale_transform, limits)[source] -
Bases:
matplotlib.transforms.Affine2DBaseАффинная часть полярной проекции. Масштабирует вывод таким образом, что максимальный радиус располагается на границе окружности осей.
limits — предел отображаемых данных. Единственная часть её границ, которая используется, — пределы по оси y (для ограничений радиуса). Диапазон значений theta обрабатывается с помощью неаффинного преобразования.
-
get_matrix()[source] -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
-
class matplotlib.projections.polar.PolarAxes(*args, theta_offset=0, theta_direction=1, rlabel_position=22.5, **kwargs)[source] -
Bases:
matplotlib.axes._axes.AxesПолярная проекция графика, где входные размеры — theta, r.
Theta начинается, указывая на восток, и идёт против часовой стрелки.
Создать ось на графике.
Параметры:
Свойство Описание adjustable{'box', 'datalim'} agg_filterфункция фильтра, которая принимает массив чисел с плавающей точкой (m, n, 3) и значение dpi, и возвращает массив чисел с плавающей точкой (m, n, 3) alphaчисло с плавающей точкой anchor2-кортеж чисел с плавающей точкой или {'C', 'SW', 'S', 'SE', ...} animatedлогическое значение aspect{'auto', 'equal'} или число autoscale_onлогическое значение autoscalex_onлогическое значение autoscaley_onлогическое значение axes_locatorВызываемый объект [[Axes, Renderer], Bbox] axisbelowлогическое значение или 'line' clip_boxBboxclip_onлогическое значение clip_path[( Path,Transform) |Patch| None]containsвызываемый объект facecolorцвет fcцвет figureFigureframe_onлогическое значение gidстрока in_layoutлогическое значение labelобъект navigateлогическое значение navigate_modeнеизвестно path_effectsAbstractPathEffectpickerNone или логическое значение или число с плавающей точкой или вызываемый объект position[левый, нижний, ширина, высота] или Bboxrasterization_zorderчисло с плавающей точкой или None rasterizedлогическое значение или None sketch_params(масштаб: число с плавающей точкой, длина: число с плавающей точкой, случайность: число с плавающей точкой) snapлогическое значение или None titleстрока transformTransformurlстрока visibleлогическое значение xbound(нижний: число с плавающей точкой, верхний: число с плавающей точкой) xlabelстрока xlim(левый: число с плавающей точкой, правый: число с плавающей точкой) xmarginчисло большее, чем -0.5 xscale{"линейный", "логарифмический", "симлогарифмический", "логит", ...} xticklabelsСписок[строка] xticksсписок ybound(нижний: число с плавающей точкой, верхний: число с плавающей точкой) ylabelстрока ylim(нижняя: число с плавающей точкой, верхняя: число с плавающей точкой)
ymarginчисло больше -0,5 yscale{"линейный", "логарифмический", "симлогарифмический", "логит", ...} yticklabelsСписок[строка] yticksсписок zorderчисло с плавающей точкой
Возвращает: -
axes : Axes -
Новый объект
Axes.
-
class InvertedPolarTransform(axis=None, use_rmin=True, _apply_theta_transforms=True) -
Базы:
matplotlib.transforms.TransformОбратная полярная трансформация, отображающая декартовы координаты x и y обратно в theta и r.
-
input_dims = 2
-
inverted() -
Возвращает соответствующую обратную трансформацию.
Результат этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его обратного экземпляра.
x === self.inverted().transform(self.transform(x))
-
is_separable = False
-
output_dims = 2
-
transform_non_affine(xy) -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда бездействие.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы принимает массив NumPy длиной
input_dimsи возвращает массив NumPy длинойoutput_dims.
-
-
class PolarAffine(scale_transform, limits) -
Базы:
matplotlib.transforms.Affine2DBaseАффинная часть полярной проекции. Масштабирует вывод так, что максимальный радиус находится на краю окружности осей.
limits — пределы представления данных. Единственная используемая часть его границ — пределы y (для пределов радиуса). Диапазон theta обрабатывается неаффинным преобразованием.
-
get_matrix() -
Получить массив аффинного преобразования для аффинной части этого преобразования.
-
-
class PolarTransform(axis=None, use_rmin=True, _apply_theta_transforms=True) -
Базы:
matplotlib.transforms.TransformОсновное полярное преобразование. Обрабатывает проекцию theta и r в декартовы координаты x и y, но не выполняет окончательное аффинное преобразование в правильное положение.
-
input_dims = 2
-
inverted() -
Возвращает соответствующую обратную трансформацию.
Результат этого метода следует рассматривать как временный. Обновление self не вызывает соответствующего обновления его обратного экземпляра.
x === self.inverted().transform(self.transform(x))
-
is_separable = False
-
output_dims = 2
-
transform_non_affine(tr) -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда бездействие.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы принимает массив NumPy длиной
input_dimsи возвращает массив NumPy длинойoutput_dims.
-
transform_path_non_affine(path) -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
-
class RadialLocator(base, axes=None) -
Базы:
matplotlib.ticker.LocatorИспользуется для определения меток радиуса.
Обеспечивает, что все метки строго положительны. Для всех других задач делегируется базовому
Locator(который может отличаться в зависимости от масштаба оси r).-
autoscale() -
автомасштабировать пределы представления
-
pan(numsteps) -
Сдвинуть numticks (может быть положительным или отрицательным)
-
refresh() -
обновить внутреннюю информацию на основе текущих пределов
-
view_limits(vmin, vmax) -
выбрать масштаб для диапазона от vmin до vmax
Обычно этот метод переопределяется подклассами для изменения поведения локатора.
-
zoom(direction) -
Увеличить/уменьшить масштаб оси; если направление > 0, увеличить масштаб, иначе уменьшить
-
-
class ThetaFormatter -
Базы:
matplotlib.ticker.FormatterИспользуется для форматирования меток шкал theta. Преобразует собственное значение радианов в градусы и добавляет символ градуса.
-
class ThetaLocator(base) -
Основы:
matplotlib.ticker.LocatorИспользуется для определения меток по углу θ.
Это будет работать так же, как и базовый локейтор, за исключением случая, когда вид охватывает весь круг. В таких случаях возвращаются ранее используемые значения по умолчанию через каждые 45 градусов.
-
autoscale() -
автомасштабирование пределов вида
-
pan(numsteps) -
Перемещение на numticks (может быть положительным или отрицательным)
-
refresh() -
обновление внутренней информации на основе текущих пределов
-
set_axis(axis)
-
view_limits(vmin, vmax) -
выбор масштаба для диапазона от vmin до vmax
Обычно этот метод переопределяется подклассами для изменения поведения локейтора.
-
zoom(direction) -
Увеличение/уменьшение масштаба оси; если направление > 0, масштаб увеличивается, иначе уменьшается
-
-
can_pan()[source] -
Возвращает True, если эта ось поддерживает функциональность кнопок перемещения/масштабирования.
Для полярных осей это немного вводит в заблуждение. Перемещение и масштабирование выполняются одной и той же кнопкой. Перемещение выполняется по азимуту, а масштабирование — по радиусу.
-
can_zoom()[source] -
Возвращает True, если эта ось поддерживает функциональность кнопки "увеличение/уменьшение по прямоугольнику".
Полярные оси не поддерживают увеличение/уменьшение по прямоугольнику.
-
cla()[source] -
Очистить текущую ось.
-
drag_pan(button, key, x, y)[source] -
Вызывается, когда мышь перемещается во время операции перемещения.
button — номер кнопки мыши:
- 1: ЛЕВАЯ
- 2: СРЕДНЯЯ
- 3: ПРАВАЯ
key — клавиша "shift"
x, y — координаты мыши в координатах отображения.
Примечание
Предполагается, что она будет переопределена новыми типами проекций.
-
draw(*args, **kwargs)[source] -
Отобразить все (линии графика, оси, метки)
-
end_pan()[source] -
Вызывается по завершении операции перемещения (когда кнопка мыши отпущена).
Примечание
Предполагается, что она будет переопределена новыми типами проекций.
-
format_coord(theta, r)[source] -
Возвращает строку форматирования координат с использованием символов Юникода.
-
get_data_ratio()[source] -
Возвращает коэффициент масштаба данных. Для полярного графика это всегда должно быть 1.0
-
get_rlabel_position()[source] -
Возвращает: - float
-
Позиция меток радиуса в градусах.
-
get_rmax()[source]
-
get_rmin()[source]
-
get_rorigin()[source]
-
get_theta_direction()[source] -
Получить направление, в котором увеличивается угол θ.
- -1:
- Угол увеличивается по часовой стрелке
- 1:
- Угол увеличивается против часовой стрелки
-
get_theta_offset()[source] -
Получить смещение для расположения 0 в радианах.
-
get_thetamax()[source]
-
get_thetamin()[source]
-
get_xaxis_text1_transform(pad)[source] -
Получить преобразование, используемое для рисования меток оси x, которое добавит указанное количество отступов (в пунктах) между осями и меткой. Направление x — в координатах данных, а направление y — в координатах осей. Возвращает тройку кортежей вида:
(transform, valign, halign)
где valign и halign — запрошенные выравнивания для текста.
Примечание
Это преобразование в основном используется классом
Axis, и предназначено для переопределения в новых типах проекций, которые могут потребовать размещения элементов оси в других местах.
-
get_xaxis_text2_transform(pad)[source] -
Получить преобразование, используемое для рисования вторичных меток оси x, которое добавит указанное количество отступов (в пунктах) между осями и меткой. Направление x — в координатах данных, а направление y — в координатах осей. Возвращает тройку кортежей вида:
(transform, valign, halign)
где valign и halign — запрошенные выравнивания для текста.
Примечание
Это преобразование в основном используется классом
Axis, и предназначено для переопределения в новых типах проекций, которые могут потребовать размещения элементов оси в других местах.
-
get_xaxis_transform(which='grid')[source] -
Получить преобразование, используемое для рисования меток, делений и линий сетки оси x. Направление x — в координатах данных, а направление y — в координатах осей.
Примечание
Это преобразование в основном используется классом
Axis, и предназначено для переопределения в новых типах проекций, которые могут потребовать размещения элементов оси в других местах.
-
-
get_yaxis_text1_transform(pad)[source] -
Получить преобразование, используемое для рисования меток оси Y, которое добавит заданное количество отступов (в пунктах) между осями и меткой. Направление X — в координатах оси, а направление Y — в координатах данных. Возвращает кортеж из 3 элементов вида:
(transform, valign, halign)
где valign и halign — запрошенные выравнивания текста.
Примечание
Это преобразование в основном используется классом
Axis, и должно переопределяться новыми типами проекций, которым может потребоваться размещение элементов осей в других местах.
-
get_yaxis_text2_transform(pad)[source] -
Получить преобразование, используемое для рисования вторичных меток оси Y, которое добавит заданное количество отступов (в пунктах) между осями и меткой. Направление X — в координатах оси, а направление Y — в координатах данных. Возвращает кортеж из 3 элементов вида:
(transform, valign, halign)
где valign и halign — запрошенные выравнивания текста.
Примечание
Это преобразование в основном используется классом
Axis, и должно переопределяться новыми типами проекций, которым может потребоваться размещение элементов осей в других местах.
-
get_yaxis_transform(which='grid')[source] -
Получить преобразование, используемое для рисования меток, делений и линий сетки оси Y. Направление X — в координатах оси, а направление Y — в координатах данных.
Примечание
Это преобразование в основном используется классом
Axis, и должно переопределяться новыми типами проекций, которым может потребоваться размещение элементов осей в других местах.
-
name = 'polar'
-
set_rgrids(radii, labels=None, angle=None, fmt=None, **kwargs)[source] -
Устанавливает радиальные линии сетки на полярном графике.
Параметры: -
radii : tuple with floats -
Радиусы для радиальных линий сетки
-
labels : tuple with strings or None -
Метки, используемые на каждой радиальной линии сетки. Если None, используется
matplotlib.ticker.ScalarFormatter. -
angle : float -
Угловое положение меток радиуса в градусах.
-
fmt : str or None -
Форматная строка, используемая в
matplotlib.ticker.FormatStrFormatter. Например, '%f'.
Возвращает: -
lines, labels : list of lines.Line2D, list of text.Text -
lines — радиальные линии сетки, labels — метки делений.
Другие параметры: - **kwargs
-
kwargs — необязательные свойства
Textдля меток.
-
-
set_rlabel_position(value)[source] -
Обновляет положение меток радиуса по углу.
Параметры: -
value : number -
Угловое положение меток радиуса в градусах.
-
-
set_rlim(*args, **kwargs)[source]
-
set_rmax(rmax)[source]
-
set_rmin(rmin)[source]
-
set_rorigin(rorigin)[source]
-
set_rscale(*args, **kwargs)[source]
-
set_rticks(*args, **kwargs)[source]
-
set_theta_direction(direction)[source] -
Установить направление, в котором увеличивается theta.
- по часовой стрелке, -1:
- Theta увеличивается по часовой стрелке
- против часовой стрелки, 1:
- Theta увеличивается против часовой стрелки
-
set_theta_offset(offset)[source] -
Установить смещение для расположения 0 в радианах.
-
set_theta_zero_location(loc, offset=0.0)[source] -
Устанавливает расположение нуля theta. (Вызывает set_theta_offset с правильным значением в радианах под капотом.)
-
loc : str - Может быть одним из "N", "NW", "W", "SW", "S", "SE", "E" или "NE".
-
offset : float, optional - Смещение в градусах, применяемое от указанного
loc. Примечание: это смещение всегда применяется против часовой стрелки независимо от направления.
-
-
-
set_thetagrids(angles, labels=None, fmt=None, **kwargs)[source] -
Установите линии сетки θ в полярном графике.
Параметры: -
angles : tuple with floats, degrees -
Углы линий сетки θ.
-
labels : tuple with strings or None -
Метки, используемые на каждой линии сетки θ. Если None, будет использоваться
projections.polar.ThetaFormatter. -
fmt : str or None -
Строка формата, используемая в
matplotlib.ticker.FormatStrFormatter. Например, '%f'. Обратите внимание, что используемый угол находится в радианах.
Возвращает: -
lines, labels : list of lines.Line2D, list of text.Text -
lines — линии сетки θ, labels — метки делений.
Другие параметры: - **kwargs
-
kwargs — необязательные свойства
Textдля меток.
-
-
set_thetalim(*args, **kwargs)[source]
-
set_thetamax(thetamax)[source]
-
set_thetamin(thetamin)[source]
-
set_xscale(scale, *args, **kwargs)[source] -
Устанавливает масштаб оси x.
Параметры: -
value : {"linear", "log", "symlog", "logit", ...} -
стратегия масштабирования для применения
См. также
-
matplotlib.scale.LinearScale - линейное преобразование
-
matplotlib.scale.LogTransform - логарифмическое преобразование
-
matplotlib.scale.SymmetricalLogTransform - симметричное логарифмическое преобразование
-
matplotlib.scale.LogisticTransform - логистическое преобразование
Примечания
Разные kwargs принимаются в зависимости от масштаба. Подробнее см. модуль
scale. -
-
set_yscale(*args, **kwargs)[source] -
Устанавливает масштаб оси y.
Параметры: -
value : {"linear", "log", "symlog", "logit", ...} -
стратегия масштабирования для применения
См. также
-
matplotlib.scale.LinearScale - линейное преобразование
-
matplotlib.scale.LogTransform - логарифмическое преобразование
-
matplotlib.scale.SymmetricalLogTransform - симметричное логарифмическое преобразование
-
matplotlib.scale.LogisticTransform - логистическое преобразование
Примечания
Разные kwargs принимаются в зависимости от масштаба. Подробнее см. модуль
scale. -
-
start_pan(x, y, button)[source] -
Вызывается при начале операции панорамирования.
x, y — координаты мыши в координатах отображения. button — номер кнопки мыши:
- 1: ЛЕВАЯ
- 2: СРЕДНЯЯ
- 3: ПРАВАЯ
Примечание
Предполагается переопределение для новых типов проекций.
-
-
class matplotlib.projections.polar.PolarTransform(axis=None, use_rmin=True, _apply_theta_transforms=True)[source] -
Базовое полярное преобразование. Обрабатывает проекцию theta и r в декартовы координаты x и y, но не выполняет окончательное аффинное преобразование в правильное положение.
-
input_dims = 2
-
inverted()[source] -
Возвращает соответствующее обратное преобразование.
Результат этого метода следует рассматривать как временный. Обновление self не приводит к соответствующему обновлению его инвертированной копии.
x === self.inverted().transform(self.transform(x))
-
is_separable = False
-
output_dims = 2
-
transform_non_affine(tr)[source] -
Выполняет только неаффинную часть преобразования.
transform(values)всегда эквивалентноtransform_affine(transform_non_affine(values)).В неаффинных преобразованиях это обычно эквивалентно
transform(values). В аффинных преобразованиях это всегда бесполезно.Принимает массив NumPy формы (N x
input_dims) и возвращает массив NumPy формы (N xoutput_dims).В качестве альтернативы принимает массив NumPy длины
input_dimsи возвращает массив NumPy длиныoutput_dims.
-
transform_path_non_affine(path)[source] -
Возвращает путь, преобразованный только неаффинной частью этого преобразования.
path: экземпляр
Path.transform_path(path)эквивалентноtransform_path_affine(transform_path_non_affine(values)).
-
-
class matplotlib.projections.polar.RadialAxis(*args, **kwargs)[source] -
Базы:
matplotlib.axis.YAxisРадиальная ось.
Это переопределяет некоторые свойства
YAxis, чтобы обеспечить специальное поведение для радиальной оси.-
axis_name = 'radius'
-
cla()[source] -
очистить текущую ось
-
-
class matplotlib.projections.polar.RadialLocator(base, axes=None)[source] -
Базы:
matplotlib.ticker.LocatorИспользуется для определения меток радиуса.
Обеспечивает, что все метки строго положительны. Для всех остальных задач он делегирует базовому
Locator(который может отличаться в зависимости от масштаба оси r).-
autoscale()[source] -
автомасштабировать пределы отображения
-
pan(numsteps)[source] -
Панорамирование numticks (может быть положительным или отрицательным)
-
refresh()[source] -
обновить внутреннюю информацию на основе текущих пределов
-
view_limits(vmin, vmax)[source] -
выбрать масштаб для диапазона от vmin до vmax
Обычно этот метод переопределяется подклассами для изменения поведения локатора.
-
zoom(direction)[source] -
Увеличить/уменьшить масштаб оси; если направление > 0, увеличить масштаб, иначе уменьшить.
-
-
class matplotlib.projections.polar.RadialTick(axes, loc, label, size=None, width=None, color=None, tickdir=None, pad=None, labelsize=None, labelcolor=None, zorder=None, gridOn=None, tick1On=True, tick2On=True, label1On=True, label2On=False, major=True, labelrotation=0, grid_color=None, grid_linestyle=None, grid_linewidth=None, grid_alpha=None, **kw)[source] -
Базы:
matplotlib.axis.YTickМетка радиальной оси.
Этот подкласс
YTickпредоставляет радиальные метки с небольшими изменениями в их перепозиционировании, так что метки поворачиваются на основе пределов осей. Это приводит к меткам, которые правильно перпендикулярны к основанию. Метки также поворачиваются, чтобы быть перпендикулярными основанию, когда включено автоматическое вращение.bbox — прямоугольник Bound2D в координатах отображения Axes loc — положение метки в данных координатах size — размер метки в пунктах
-
update_position(loc)[source] -
Установить положение метки в координатах данных со скаляром loc
-
-
class matplotlib.projections.polar.ThetaAxis(axes, pickradius=15)matplotlib.axis.XAxisОсь тета.
Это переопределяет некоторые свойства
XAxis, чтобы обеспечить специальное поведение для угловой оси.Инициализировать ось с экземпляром родительского Axes
-
axis_name = 'theta' -
cla()[source] -
очистить текущую ось
-
class matplotlib.projections.polar.ThetaFormattermatplotlib.ticker.FormatterИспользуется для форматирования меток шкал тета. Преобразует родной единицы радиан в градусы и добавляет символ градуса.
-
class matplotlib.projections.polar.ThetaLocator(base)matplotlib.ticker.LocatorИспользуется для определения меток тета.
Это будет работать так же, как и базовый локатор, за исключением случая, когда представление охватывает всю окружность. В таких случаях возвращаются ранее используемые значения по умолчанию для каждой 45 градусов.
-
autoscale()[source] -
автомасштабировать пределы отображения
-
pan(numsteps)[source] -
Панорамирование numticks (может быть положительным или отрицательным)
-
refresh()[source] -
обновить внутреннюю информацию на основе текущих пределов
-
set_axis(axis)[source] -
view_limits(vmin, vmax)[source] -
выбрать масштаб для диапазона от vmin до vmax
Обычно этот метод переопределяется подклассами для изменения поведения локатора.
-
zoom(direction)[source] -
Увеличить/уменьшить масштаб оси; если направление > 0, увеличить масштаб, иначе уменьшить.
-
class matplotlib.projections.polar.ThetaTick(axes, *args, **kwargs)matplotlib.axis.XTickМетка оси тета.
Этот подкласс
XTickпредоставляет угловые метки с небольшими изменениями в их перепозиционировании, так что метки поворачиваются на основе положения метки. Это приводит к меткам, которые правильно перпендикулярны дуговой оси.При включенном автоматическом вращении метки также поворачиваются, чтобы быть параллельными оси. Здесь также применяется отступ метки, поскольку использование универсального преобразования осей для создания отступа, специфичного для меток, невозможно.
-
update_position(loc)[source] -
Установить положение метки в координатах данных со скаляром loc
© 2012–2018 Matplotlib Development Team. All rights reserved.
Licensed under the Matplotlib License Agreement.
https://matplotlib.org/3.0.0/api/projections_api.html