BarSizeParam

class axioma.render.BarSizeParam

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

BarSizeParam()

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

BarSizeParam(scale, value, size)

Конструктор

Параметры:
  • scale (float) – Значение масштаба карты
  • value (float) – Значение, соответствующая масштабу карты и размеру диаграммы
  • size (float) – Максимальный размер диаграммы
mapScale

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

Type:float
value

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

Type:float
size

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

Type:UnitValue

BarThematicStyleProvider

class axioma.render.BarThematicStyleProvider

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

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

BarThematicStyleProvider(layer)

Конструктор

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

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

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

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

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

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

Параметры:v (BarSizeParam) – Новое значение.
sizeParam()

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

Результат:Установленные параметры масштабирования
Тип результата:BarSizeParam
isStacked()

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

Результат:True, если да. В противном случае False
Тип результата:bool
setIsStacked(value)

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

param value:Значение
type value:bool
calculateMaximum(table)

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

Параметры:table (Table) – Анализируемая таблица
Результат:Рассчитанное значение
Тип результата:float
thematicColorExpressionParams()

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

Результат:Список
Тип результата:list [ThematicColorExpressionParam]
setThematicStyleParam(ind, param)

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

Параметры:
thematicStyleParam(index)

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

Параметры:index (int) – Индекс
Результат:Полученный по индексу параметр
Тип результата:ThematicColorExpressionParam
isGraduired()

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

Результат:True, если размеры всех диаграмм тематического слоя имеют одинаковый размер. False, если размер масштабируется по выражению
Тип результата:bool
setIsGraduired(value)

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

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

BarThematicLayer

class axioma.render.BarThematicLayer

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

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

BarThematicLayer(parent)

Конструктор

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

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

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

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

Результат:Копия провайдера стиля, установленного для слоя на данный момент
Тип результата:BarThematicStyleProvider
setStyleProvider(provider)

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

Параметры:provider (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)