BarSizeParam

class axioma.render.BarSizeParam

Параметры масштабирования столбчатой диаграммы. Содержит соответствие между масштабом карты, значения по заданному выражению и размером диаграммы

Конструктор со значениями по умолчанию

BarSizeParam()
BarSizeParam(scale, value, size)

Конструктор

Параметры
  • scale (float) – Значение масштаба карты

  • value (float) – Значение, соответствующая масштабу карты и размеру диаграммы

  • size (float) – Максимальный размер диаграммы

mapScale

Значение масштаба карты

Type

float

size

Максимальный размер диаграммы

Type

UnitValue

value

Значение, соответствующая масштабу карты и размеру диаграммы

Type

float

BarThematicStyleProvider

class axioma.render.BarThematicStyleProvider

Класс провайдера стилей для тематического слоя BarThematicLayer в виде столбчатой диаграммы.

Унаследован от: ThematicStyleProvider, AllocationThematic, OrientationThematic

Установить вид расположения столбцов диаграммы. True, если необходимо расположить в виде стопки. По умолчанию False

param value

Значение

type value

bool

BarThematicStyleProvider(layer)

Конструктор

Параметры

layer (ThematicLayer) – Ссылка на тематический слой, к которому привязан данный провайдер стилей.

BarThematicStyleProvider(other)

Копирующий конструктор

Параметры

other (BarThematicStyleProvider) – Исходный объект BarThematicStyleProvider, на базе которого необходимо сделать копию.

calculateMaximum(table)

Расчет максимального значения по заданным выражениям по всем записям таблицы

Параметры

table (Table) – Анализируемая таблица

Результат

Рассчитанное значение

Тип результата

float

isGraduired()

Является ли диаграмма масштабируемой в зависимости от полученного значения выражения

Результат

True, если размеры всех диаграмм тематического слоя имеют одинаковый размер. False, если размер масштабируется по выражению

Тип результата

bool

isStacked()

Располагать ли столбчатые диаграммы стопкой

Результат

True, если да. В противном случае False

Тип результата

bool

setExpressions(list)

Задание списка выражений и соответствующих им стилей для каждого результирующего сегмента

Параметры

list (list [ThematicColorExpressionParam]) – Список, содержащий параметры.

setIsGraduired(value)

Установить признак необходимости масштабирования диаграммы

Параметры

value (bool) – True, если производить масштабирование не требуется. False в противном случае

setIsStacked(value)
setSizeParam(v)

Задание параметров масштабирования

Параметры

v (BarSizeParam) – Новое значение.

setThematicStyleParam(ind, param)

Задание нового значения ( замена существующего ) параметра по его индексу

Параметры
sizeParam()

Текущие параметры масштабирования

Результат

Установленные параметры масштабирования

Тип результата

BarSizeParam

thematicColorExpressionParams()

Список параметров по анализируемым сегментам

Результат

Список

Тип результата

list [ThematicColorExpressionParam]

thematicStyleParam(index)

Запрос параметров сегмента по его индексу

Параметры

index (int) – Индекс

Результат

Полученный по индексу параметр

Тип результата

ThematicColorExpressionParam

BarThematicLayer

class axioma.render.BarThematicLayer

Тематический слой в виде столбчатой диаграммы.

Унаследован от: ThematicLayer

BarThematicLayer(parent)

Конструктор

Параметры

parent (FeatureLayer) – Ссылка на слой, на базе которого создается данный тематический слой.

BarThematicLayer(other)

Копирующий конструктор

Параметры

other (BarThematicLayer) – Исходный слой, на базе которого создается новый слой.

setStyleProvider(provider)

Устанавливает новый провайдер стилей для слоя.

Параметры

provider (BarThematicStyleProvider) – Новый провайдер стилей.

styleProvider()

Возвращает текущий провайдер стилей для слоя.

Результат

Копия провайдера стиля, установленного для слоя на данный момент

Тип результата

BarThematicStyleProvider

Пример использования:

# Импорт
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

# Столбчатая диаграмма
def addBarThematic(layer):
    barLayer = BarThematicLayer(layer)
    barStyleProvider =  BarThematicStyleProvider(barLayer)
    barStyleProvider.setExpressions(makeExpressionListForWorld(layer)) # Установим выражения
    if len(barStyleProvider.thematicColorExpressionParams()) > 1:
        barStyleProvider.setIsStacked(True) # Стопкой
        barStyleProvider.setAllocationType(AllocationThematic.AT_LINEAR) # Распределение значений
        sizeParam = barStyleProvider.sizeParam()
        sizeParam.value = barStyleProvider.calculateMaximum(layer.table()) # максимальное значение
        sizeParam.mapScale = 160000000 # для масштаба
        sizeParam.diameter = UnitValue(Unit.cm(), 1.0) # размер в сантиметрах
        barStyleProvider.setSizeParam(sizeParam)
        barLayer.setStyleProvider(barStyleProvider)  # Установка провайдера стиля
        addLayer(layer, barLayer)