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)