PieSizeParam¶
-
class
axioma.render.
PieSizeParam
¶ Параметры масштабирования диаграммы. Содержит соответствие между масштабом карты, суммой значений по заданному выражению и диаметром диаграммы
PieThematicStyleProvider¶
-
class
axioma.render.
PieThematicStyleProvider
¶ Класс провайдера стилей для тематического слоя
PieThematicLayer
в виде круговой диаграммы.Унаследован от:
ThematicStyleProvider
,AllocationThematic
Установка порядка отрисовки сегментов диаграммы
- param value
Если задано True, то сегменты будут отрисовываться в порядке по часовой стрелке. False - против
- type value
-
PieThematicStyleProvider
(layer)¶ Конструктор
- Параметры
layer (
ThematicLayer
) – Ссылка на тематический слой, к которому привязан данный провайдер стилей.
-
calculateMaxSum
(table)¶ Расчет максимального значения суммы результатов по заданным выражениям по всем записям таблицы
-
isClockwise
()¶ Порядок отрисовки сегментов диаграммы
- Результат
True, если по часовой стрелке, False если против
- Тип результата
-
isGraduired
()¶ Является ли диаграмма масштабируемой в зависимости от полученного значения выражения
- Результат
True, если размеры всех диаграмм тематического слоя имеют одинаковый размер. False, если размер масштабируется по выражению
- Тип результата
-
pixelDiameter
(mapViewport, dpi)¶ Расчет максимального диаметра в пикселях, исходя из переданного MapViewport и требуемого dpi устройства
- Параметры
mapViewport (
MapViewport
) – Значение MapViewport.dpi (
int
) – dpi устройства.
- Результат
Рассчитанное значение
- Тип результата
-
setExpressions
(list)¶ Задание списка выражений и соответствующих им стилей для каждого результирующего сегмента
- Параметры
list (
list
[ThematicColorExpressionParam
]) – Список, содержащий параметры.
-
setIsClockwise
(value)¶
-
setIsGraduired
(value)¶ Установить признак необходимости масштабирования диаграммы
- Параметры
value (
bool
) – True, если производить масштабирование не требуется. False в противном случае
-
setSizeParam
(v)¶ Задание параметров масштабирования
- Параметры
v (
PieSizeParam
) – Новое значение.
-
setStartAngle
(angle)¶ Задание начального угла, от которого строится первый сегмент круговой диаграммы
- Параметры
angle (
float
) – Значение угла.
-
setThematicStyleParam
(ind, param)¶ Задание нового значения ( замена существующего ) параметра по его индексу
- Параметры
ind (
int
) – Индекс параметраparam (
ThematicColorExpressionParam
) – Параметр
-
sizeParam
()¶ Текущие параметры масштабирования
- Параметры
v (
PieSizeParam
) – Новое значение.- Результат
Установленные параметры масштабирования
- Тип результата
-
startAngle
()¶ Начальный угол, от которого строится первый сегмент круговой диаграммы
- Результат
Значение угла
- Тип результата
-
thematicColorExpressionParams
()¶ Список параметров по анализируемым сегментам
- Результат
Список
- Тип результата
PieThematicLayer¶
-
class
axioma.render.
PieThematicLayer
¶ Тематический слой в виде круговой диаграммы
Унаследован от:
ThematicLayer
-
PieThematicLayer
(parent)¶ Конструктор
- Параметры
parent (
FeatureLayer
) – Ссылка на слой, на базе которого создается данный тематический слой.
-
PieThematicLayer
(other)¶ Копирующий конструктор
- Параметры
other (
PieThematicLayer
) – Исходный слой, на базе которого создается новый слой.
-
setStyleProvider
(provider)¶ Устанавливает новый провайдер стилей для слоя.
- Параметры
provider (
PieThematicStyleProvider
) – Новый провайдер стилей.
-
styleProvider
()¶ Возвращает текущий провайдер стилей для слоя.
- Результат
Копия провайдера стиля, установленного для слоя на данный момент
- Тип результата
-
Пример использования:
# Импорт 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)