axioma.render.
PieSizeParam
¶Параметры масштабирования диаграммы. Содержит соответствие между масштабом карты, суммой значений по заданному выражению и диаметром диаграммы
axioma.render.
PieThematicStyleProvider
¶Класс провайдера стилей для тематического слоя PieThematicLayer
в виде круговой диаграммы.
Унаследован от: ThematicStyleProvider
, AllocationThematic
PieThematicStyleProvider
(layer)¶Конструктор
Параметры: layer ( ThematicLayer
) – Ссылка на тематический слой, к которому привязан данный провайдер стилей.
setExpressions
(list)¶Задание списка выражений и соответствующих им стилей для каждого результирующего сегмента
Параметры: list ( list
[ThematicColorExpressionParam
]) – Список, содержащий параметры.
setStartAngle
(angle)¶Задание начального угла, от которого строится первый сегмент круговой диаграммы
Параметры: angle ( float
) – Значение угла.
startAngle
()¶Начальный угол, от которого строится первый сегмент круговой диаграммы
Результат: Значение угла Тип результата: float
setSizeParam
(v)¶Задание параметров масштабирования
Параметры: v ( PieSizeParam
) – Новое значение.
sizeParam
()¶Текущие параметры масштабирования
Параметры: v ( PieSizeParam
) – Новое значение.Результат: Установленные параметры масштабирования Тип результата: PieSizeParam
pixelDiameter
(mapViewport, dpi)¶Расчет максимального диметра в пикселях, исходя из переданного MapViewport и требуемого dpi устройства
Параметры:
- mapViewport (
MapViewport
) – Значение MapViewport.- dpi (
int
) – dpi устройства.Результат: Рассчитанное значение
Тип результата:
calculateMaxSum
(table)¶Расчет максимального значения суммы результатов по заданным выражениям по всем записям таблицы
Параметры: table ( Table
) – Анализируемая таблицаРезультат: Рассчитанное значение Тип результата: float
isClockwise
()¶Порядок отрисовки сегментов диаграммы
Результат: True, если по часовой стрелке, False если против Тип результата: bool
setIsClockwise
(value)¶Установка порядка отрисовки сегментов диаграммы
param value: Если задано True, то сегменты будут отрисовываться в порядке по часовой стрелке. False - против type value: bool
thematicColorExpressionParams
()¶Список параметров по анализируемым сегментам
Результат: Список Тип результата: list
[ThematicColorExpressionParam
]
setThematicStyleParam
(ind, param)¶Задание нового значения ( замена существующего ) параметра по его индексу
Параметры:
- ind (
int
) – Индекс параметра- param (
ThematicColorExpressionParam
) – Параметр
thematicStyleParam
(index)¶Запрос параметров сегмента по его индексу
Параметры: index ( int
) – ИндексРезультат: Полученный по индексу параметр Тип результата: ThematicColorExpressionParam
axioma.render.
PieThematicLayer
¶Тематический слой в виде круговой диаграммы
Унаследован от: ThematicLayer
PieThematicLayer
(parent)¶Конструктор
Параметры: parent ( FeatureLayer
) – Ссылка на слой, на базе которого создается данный тематический слой.
PieThematicLayer
(other)Копирующий конструктор
Параметры: other ( PieThematicLayer
) – Исходный слой, на базе которого создается новый слой.
styleProvider
()¶Возвращает текущий провайдер стилей для слоя.
Результат: Копия провайдера стиля, установленного для слоя на данный момент Тип результата: PieThematicStyleProvider
setStyleProvider
(provider)¶Устанавливает новый провайдер стилей для слоя.
Параметры: provider ( PieThematicStyleProvider
) – Новый провайдер стилей.
Пример использования:
# Импорт from axioma.render import * from axioma.core.sql import * from axioma.mapinfo import * # Создание переменной для обеспечения возможности вычисления выражений runtime = SqlRuntime() # Добавление слоя в конец списка def addLayer(layer, thematic): layer.appendLayer(thematic); # Создание выражения по полю def makeExpressionForWorld(layer, attr): evaluator = FeatureExpressionEvaluator(runtime, layer.tableSchema()) if not evaluator.setExpression(axioma.app.mainWindow.tr(attr)): print(evaluator.errorString()) return evaluator # Создание пар стиль - выражение def makeStylePair(layer, color, attr): style = polygonStyleForColor(color) expr = makeExpressionForWorld(layer, attr) return ThematicColorExpressionParam(style, expr) # Создание списка выражений по цветам def makeExpressionListForWorld(layer): list = [] list.append(makeStylePair(layer, Qt.red, QObject().tr("Население"))) list.append(makeStylePair(layer, Qt.blue, QObject().tr("Pop_Male"))) list.append(makeStylePair(layer, Qt.green, QObject().tr("Pop_Fem"))) return list # Круговая диаграмма. layer - базовый слой, на основе которого строится тематика def addPieThematic(layer): pieLayer = PieThematicLayer(layer) pieStyleProvider = PieThematicStyleProvider(pieLayer) pieStyleProvider.setStartAngle(30) pieStyleProvider.setExpressions(makeExpressionListForWorld(layer)) # Установим выражения if len(pieStyleProvider.thematicColorExpressionParams()) > 1: sizeParam = pieStyleProvider.sizeParam() sizeParam.sumValue = pieStyleProvider.calculateMaxSum(layer.table()) # максимальное значение sizeParam.mapScale = 160000000 # для масштаба sizeParam.diameter = UnitValue(Unit.cm(), 1.0) # размер в сантиметрах pieStyleProvider.setSizeParam(sizeParam) pieLayer.setStyleProvider(pieStyleProvider) # Установка провайдера стиля addLayer(layer, pieLayer)