Chart

Сводка

Класс Chart задает диаграмму ArcGIS Pro. Этот класс позволяет создавать различные типы диаграмм, включая линейчатые диаграммы, линейные графики, точечные диаграммы, матрицы точечных диаграмм, графики КК, гистограммы, ящичковые диаграммы и диаграммы хронометража данных. Этот класс также может использоваться для определения названия, осей и других свойств диаграмм.

Более подробно о диаграммах в ArcGIS Pro

Описание

Диаграммы помогают представить информацию о пространственных объектах карты и отношениях между ними визуальным способом. Диаграммы также могут быть созданы для непространственных таблиц и могут отображать дополнительную информацию об объектах на карте или ту же информацию другим способом. Диаграммы дополняют карту, визуализируя информацию, которую можно просуммировать или извлечь из таблиц. В диаграмме вы можете быстро сравнить объекты и понять функциональные отношения между объектами, и таким образом визуализировать распределение, тренды и структуру данных, что трудно заметить иным способом.

Диаграммы могут быть созданы с использованием объекта Chart и добавлены в слой или таблицу в проекте ArcGIS Pro. Чтобы добавить диаграмму в слой в проекте, создайте объект Chart, настройте его свойства и свяжите объект Chart с arcpy.mp.Layer из arcpy.mp.ArcGISProject. Созданную таким образом диаграмму можно открыть в разделе Диаграммы под слоем на панели Содержание, когда этот проект открыт в ArcGIS Pro.

У объекта Chart есть свойство dataSource, которое можно использовать для создания диаграммы для источников данных, включая различные классы пространственных объектов, форматы таблиц и веб-слои (сервисы объектов). Диаграмму можно экспортировать в файл .svg (.svg) для визуализации.Chart объекты поддерживают богатое представление в Notebooks и могут быть визуализированы графически.

Пример arcpy.Chart в блокноте

Синтаксис

 Chart (name)
ParameterОбъяснениеТип данных
name

Имя диаграммы. Диаграмма должна иметь уникальное имя для каждого слоя. Имя используется только для идентификации; оно не отображается.

String

Свойства

ВладениеОбъяснениеТип данных
bar
(чтение и запись)

Задает дополнительные свойства, которые применяются к линейчатым диаграммам.

bar свойствоОписание

aggregation

Статистические вычисления применяются к значениям, которые располагаются по оси x. Поддерживается следующая статистика: COUNT, SUM, MEAN и MEDIAN. Отсутствие агрегирования означает, что каждое значение будет нанесено на диаграмму независимо от перекрывающихся или повторяющихся значений.

multiSeriesDisplay

Тип отображения для линейчатой диаграммы с несколькими сериями. Допустимые опции – это sideBySide, stacked и stacked100.

rotated

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

splitCategory

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

Object
boxPlot
(чтение и запись)

Задает дополнительные свойства, которые применяются к ящичковым диаграммам.

boxPlot свойствоОписание

rotated

Определяет, как будут отображаться ящички, вертикально или горизонтально. По умолчанию ящички отображаются вертикально. True вращает ящички по горизонтали False отображает ящички по вертикали.

showOutliers

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

splitCategory

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

splitCategoryAsMeanLine

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

standardizeValues

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

Object
calendarHeatChart
(чтение и запись)

Задает дополнительные свойства, которые применяются к календарным диаграммам интенсивности.

calendarHeatChart свойствоОписание

aggregation

Статистический расчет, применяемый к значениям, агрегированным в каждой ячейке. Поддерживается следующая статистика: COUNT, SUM, MEAN и MEDIAN.

classCount

Число классов, используемых в методе классификации.

classificationMethod

Метод классификации, используемый для визуализации цвета ячейки. Поддерживаются следующие опции: equalIntervals, geometricalIntervals, naturalBreaks и quantiles.

nullPolicy

Как отображаются суммированные ячейки, возвращающие значение null. Поддерживаются следующие опции: null и zero.

calendarType

Описание пары единиц измерения времени, которые поддерживаются в диаграмме хронометража данных. Поддерживаются следующие опции: YEAR_MONTHSDAYS и WEEK_DAYSHOURS.

Object
dataClock
(чтение и запись)

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

dataClock свойствоОписание

aggregation

Статистический расчет, применяемый к значениям, агрегированным во времени. Поддерживается следующая статистика: COUNT, SUM, MEAN и MEDIAN.

classCount

Число классов, используемых в методе классификации.

classificationMethod

Метод классификации, используемый для визуализации цвета ячейки. Поддерживаются следующие опции: equalIntervals, geometricalIntervals, naturalBreaks и quantiles.

nullPolicy

Как отображаются суммированные ячейки, возвращающие значение null. Поддерживаются следующие опции: null и zero.

timeUnitsRingWedge

Описание пары единиц измерения времени, которые поддерживаются в диаграмме хронометража данных. Поддерживаются следующие опции:

  • YEARS_MONTHS
  • YEARS_WEEKS
  • YEARS_DAYS
  • WEEKS_DAYS
  • DAYS_HOURS
Object
dataSource
(чтение и запись)

Устанавливает источник данных диаграммы. Когда диаграмма экспортируется с использованием метода exportToSVG или отображается в ArcGIS Notebook, источник данных считывается и отображается на диаграмме. К допустимым источникам данных относятся пути к наборам данных, включая локальные наборы данных, пути UNC, URL-адреса служб и объекты arcpy.mp Layer.

String
description
(чтение и запись)

Задает описание диаграммы. Текст диаграммы отображается внизу вида диаграммы.

String
histogram
(чтение и запись)

Задает дополнительные свойства, которые применяются к гистограммам.

histogram свойствоОписание

binCount

Количество столбцов, которые будут отображаться в гистограмме.

dataTransformationType

Тип преобразования данных. Поддерживается следующие преобразования: none, logarithmic и squareRoot.

showComparisonDistribution

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

showMean

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

showMedian

Показывает, видна ли на гистограмме линия медианы из статистики. True отображает линию.False скрывает линию.

showStandardDeviation

Показывает, видна ли на гистограмме линия стандартного отклонения из статистики. True отображает линию.False скрывает линию.

Object
legend
(чтение и запись)

Задает свойства легенды диаграммы.

legend свойствоОписание

visible

Показывает, отображается ли легенда в виде диаграммы. True отображает легенду. False скрывает легенду.

Object
line
(чтение и запись)

Задает дополнительные свойства, которые применяются к линейным графикам.

line свойствоОписание

aggregation

Статистический расчет, применяемый к значениям, агрегированным в каждую ячейку времени. Поддерживается следующая статистика: COUNT, SUM, MEAN и MEDIAN. Отсутствие агрегирования означает, что каждое значение будет нанесено на диаграмму независимо от перекрывающихся или повторяющихся значений.

nullPolicy

Как отображаются суммированные ячейки, возвращающие значение null. Поддерживаются следующие опции: null, zero и interpolate.

rotated

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

splitCategory

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

timeAggregationType

Тип выравнивания временного интервала. К доступным опциям относятся equalIntervalsFromStartTime и equalIntervalsFromEndTime.

timeIntervalSize

Промежуток времени, который будет сгруппирован или объединен. Необходимо использовать в сочетании с timeIntervalUnit.

timeIntervalUnits

Единицы измерения времени, соответствующие timeIntervalSize. Допустимые опции включают: SECONDS, MINUTES, HOURS, DAYS, WEEKS, MONTHS и YEARS.

trimInCompleteTimeInterval

Определяет, будут ли незавершенные временные интервалы в начале или в конце интервала данных (в зависимости от timeAggregationType) удалены из диаграммы. Незавершенные интервалы на диаграмме могут привести к ошибочным результатам, в которых рассматриваемый период меньше или больше указанного из-за различного количества времени в интервале. True указывает на обрезку этих неполных интервалов.False не обрезает неполные интервалы.

Object
qqPlot
(чтение и запись)

Задает дополнительные свойства, которые применяются к диаграммам КК.

qqPlot свойствоОписание

dataTransformationType

Применяет преобразование к данным. Допустимые преобразования включают: none, logarithmic и squareRoot.

showReferenceLine

Показывает, видна ли базовая линия в диаграмме КК. True отображает линию.False скрывает линию.

Object
scatter
(чтение и запись)

Задает дополнительные свойства, которые применяются к точечным диаграммам.

scatter свойствоОписание

bubbleMinSize

Минимальный размер точек пузырьковой диаграммы.

bubbleMaxSize

Максимальный размер точек пузырьковой диаграммы.

showTrendLine

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

Object
scatterMatrix
(чтение и запись)

Задает дополнительные свойства, которые применяются к матрицам точечных диаграмм.

scatterMatrix свойствоОписание

fields

Список имен полей для отображения в матрице. Требуется минимум три поля.

showAsRSquared

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

showHistograms

Указывает, отображаются ли гистограммы в матрице. True отображает гистограммы. False скрывает гистограммы.

showTrendLine

Показывает, видны ли линии тренда в точечных диаграммах. True отображает линии. False скрывает линии.

Object
title
(чтение и запись)

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

String
type
(чтение и запись)

Задает тип создаваемой диаграммы. Допустимые опции включают следующее:

  • bar
  • line
  • scatter
  • scatterMatrix
  • qqPlot
  • histogram
  • boxPlot
  • dataClock
  • calendarHeatChart

String
xAxis
(чтение и запись)

Задает свойства оси x.

xAxis свойствоОписание

field

Имя поля, отображаемого на оси X.

Для диаграмм хронометража данных и календарных диаграмм интенсивности в этом параметре указывается поле данных.

logarithmic

Указывает, является ли ось логарифмической. True отображает логарифмическую ось. False отображает линейную ось.

Это свойство применяется только для точечных диаграмм и линейных графиков.

maximum

Минимальная граница оси.

minimum

Максимальная граница оси.

sort

Порядок сортировки, применяемый к оси. ASC используется для сортировки по возрастанию, DESC - для сортировки по убыванию.

Это свойство применяется только для линейчатых диаграмм.

title

Надпись оси, которая отображается на диаграмме.

Object
yAxis
(чтение и запись)

Задает свойства оси y.

yAxis свойствоОписание

field

Имя поля, отображаемого на оси Y.

Для линейчатых диаграмм и линейных графиков это свойство можно задать списком имен полей.

Для диаграмм хронометража данных и календарных диаграмм интенсивности в этом параметре указывается числовое поле.

logarithmic

Указывает, является ли ось логарифмической. True отображает логарифмическую ось. False отображает линейную ось.

Это свойство применяется только для точечных диаграмм и линейных графиков.

maximum

Минимальная граница оси.

minimum

Максимальная граница оси.

sort

Порядок сортировки, применяемый к оси. ASC используется для сортировки по возрастанию, DESC - для сортировки по убыванию.

Это свойство применяется только для линейчатых диаграмм.

title

Надпись оси, которая отображается на диаграмме.

Object

Обзор метода

МетодОбъяснение
addToLayer (layer)

Добавляет к слою класс диаграмм.

exportToSVG (path, width, height)

Экспортирует диаграмму в формат SVG.

updateChart ()

Обновляет свойства диаграммы для синхронизации изменений между классом и диаграммой, предварительно добавленной к слою.

Методы

addToLayer (layer)
ParameterОбъяснениеТип данных
layer

Диаграмма будет добавлена к этому целевому объекту Layer.

Layer
Значение отраженного сигнала
Тип данныхОбъяснение
Object

Класс Chart не будет изменен, но свойства класса будут добавлены к определению слоя, и будет создана диаграмма.

После задания свойств диаграммы в классе Chart, обычно остается добавить диаграмму к слою. Для этого используйте метод addToLayer.

Задайте свойства диаграммы и добавьте ее к существующему слою.

import arcpy
aprx = arcpy.mp.ArcGISProject("current")
map = aprx.listMaps()[0]
censusLayer = map.listLayers('Census Block Groups')[0]
c = arcpy.Chart('MyChart')
c.type = 'bar'
c.title = 'Population by State'
c.xAxis.field = 'StateName'
c.yAxis.field = 'Population'
c.bar.aggregation = 'SUM'
c.xAxis.title = 'State'
c.yAxis.title = 'Total Population'
c.addToLayer(censusLayer)
exportToSVG (path, width, height)
ParameterОбъяснениеТип данных
path

Папка, в которой будет сохранена диаграмма в формате SVG.

String
width

Ширина выходной графики.

Integer
height

Высота выходной графики.

Integer

В некоторых случаях вам может понадобиться сохранить диаграмму в графический формат, который можно совместно использовать и просматривать вне ArcGIS Pro. Преимуществом экспорта в формат SVG является то, что графические элементы и текст сохраняются, как векторные объекты, каждый из которых можно изменять в программе, работающей с векторной графикой. Размер графики SVG также можно изменить на любой другой без потери качества.

Создает диаграмму на основе слоя проекта и экспортирует ее на локальный диск.

import arcpy
aprx = arcpy.mp.ArcGISProject('current')
censusLayer = aprx.listMaps()[0].listLayers('Census Block Groups')[0]
c = arcpy.Chart('Population By State')
c.type = 'bar'
c.title = 'Population by State'
c.xAxis.field = 'StateName'
c.xAxis.title = 'State'
c.yAxis.field = 'Population'
c.yAxis.title = 'Total Population'
c.bar.aggregation = 'SUM'
# Set data source to a layer within current project
c.dataSource = censusLayer
# Save the chart to file with dimensions width=500, height=500
c.exportToSVG('populationByState.svg', 500, 500)

Создает диаграмму на основе слоя сервиса объектов и экспортирует ее на локальный диск.

import arcpy
featureServiceURL = r'https://services1.arcgis.com/hLJbHVT9ZrDIzK0I/arcgis/rest/services/CrimesChiTheft/FeatureServer/0'
c = arcpy.Chart('Chicago Thefts')
c.type = 'bar'
c.title = 'Chicago Thefts by Police Beat'
c.xAxis.field = 'BEAT'
c.bar.aggregation = 'COUNT'
# Set data source to a feature service URL
c.dataSource = featureServiceURL
# Save the chart to file with dimensions width=800, height=600
c.exportToSVG('theftsPerBeat.svg', 800, 600)
updateChart ()
Значение отраженного сигнала
Тип данныхОбъяснение
Object

Класс Chart никак не изменился. Скорее настройки класса синхронизируются с диаграммой, предварительно добавленной к слою.

После задания свойств диаграммы в классе Chart, обычно остается добавить диаграмму к слою. Для этого используйте метод addToLayer. Однако вы можете захотеть изменить свойства диаграммы. Вместо того, чтобы начинать с нуля с новой диаграммой, вы можете изменить свойства исходного класса Chart, а затем использовать updateChart для синхронизации любых изменений с диаграммой, добавленной к слою. Это позволит отображаться изменениям, внесенным вами, на панели свойств Диаграмма и в виде диаграммы.

Используйте updateChart для синхронизации изменений свойств диаграммы со слоем.

chart.addToLayer(myLayer)
# Further modification is necessary
chart.description = "Data from the U.S. Census Bureau"
chart.updateChart()

Пример кода

Пример диаграммы

Добавьте объект Chart в объект arcpy.mp Layer, чтобы добавить диаграмму к слою.

import arcpy
aprx = arcpy.mp.ArcGISProject("current")
map = aprx.listMaps()[0]
censusLayer = map.listLayers('Census Block Groups')[0]
c = arcpy.Chart('MyChart')
c.type = 'scatter'
c.title = 'Relationship between Percent Vacant (Housing) and Population Density'
c.description = 'This chart examines the relationship between housing vacancy and population density.'
c.xAxis.field = 'Per_Vacant'
c.yAxis.field = 'Pop_Density'
c.xAxis.title = 'Vacant Housing %'
c.yAxis.title = 'Population Density (per Sq. Mile)'
c.addToLayer(censusLayer)