Chart

Сводка

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

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

Описание

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

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

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

Пример диаграммы в блокноте

Синтаксис

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

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

String

Свойства

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

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

  • aggregation – статистическое вычисление, примененное к значениям, которые появляются в том же значении вдоль оси x. Поддерживается следующая статистика: COUNT, SUM, MEAN, MEDIAN, MIN, и MAX. Отсутствие агрегирования означает, что каждое значение будет нанесено на диаграмму независимо от перекрывающихся или повторяющихся значений.
  • movingAveragePeriod – размер движущегося периода среднего.
  • multiSeriesDisplay – тип отображения для линейной диаграммы с несколькими сериями. Допустимые опции – это sideBySide, stacked и stacked100.
  • rotated – указывает, отображаются ли столбцы вертикально или горизонтально. По умолчанию столбцы отображаются вертикально. True вращает столбцы по горизонтали.False отображает столбцы по вертикали.
  • showMovingAverage – указывает, будет ли отображено движущееся среднее.
  • splitCategory – поле второй категории, которое добавляет отдельные серии или столбец для каждого уникального значения в поле.
Object
boxPlot
(чтение и запись)

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

  • rotated – определяет, как будут отображаться ящички, вертикально или горизонтально. По умолчанию ящички отображаются вертикально. True вращает ящички по горизонтали False отображает ящички по вертикали.
  • showOutliers – указывает, будут ли отображаться выбросы как точки, которые выходят за линии усов.True отображает выбросы как точки. False включает выбросы в усы.
  • splitCategory – поле второй категории, которое добавляет отдельные серии или ящичек для каждого уникального значения в поле.
  • splitCategoryAsMeanLine – ящичковые диаграммы с несколькими сериями, которые создаются с использованием поля разбиения, могут отображаться как средние линии или как ящички, располагающиеся бок о бок. True отображает разделенные несколько серий в виде средних линий.False отображает разделенные несколько серий как ящички, располагающиеся бок о бок.
  • standardizeValues – ящичковые диаграммы, которые создаются из нескольких полей, по умолчанию стандартизируются. True отображает стандартизированные значения.False отображает нестандартные значения.
Object
calendarHeatChart
(чтение и запись)

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

  • aggregation – статистический расчет, применяемый к значениям, агрегированным в каждой ячейке. Поддерживается следующая статистика: COUNT, SUM, MEAN, MEDIAN, MIN, и MAX.
  • classCount – число классов, используемых в методе классификации.
  • classificationMethod – метод классификации, используемый для визуализации цвета ячейки. Поддерживаются следующие опции: equalIntervals, geometricalIntervals, naturalBreaks и quantiles.
  • nullPolicy – как отображаются суммированные ячейки, возвращающие значение null. Поддерживаются следующие опции: null и zero.
  • calendarType – описание пары единиц измерения времени, которые поддерживаются в диаграмме хронометража данных. Поддерживаются следующие опции: YEAR_MONTHSDAYS и WEEK_DAYSHOURS.
Object
dataClock
(чтение и запись)

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

  • aggregation – статистический расчет, применяемый к значениям, агрегированным во времени. Поддерживается следующая статистика: COUNT, SUM, MEAN, MEDIAN, MIN, и MAX.
  • 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
(чтение и запись)

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

  • binCountколичество бинов, которые будут отображаться в гистограмме.
  • dataTransformationType – тип преобразования данных. Поддерживается следующие преобразования: none, logarithmic и squareRoot.
  • showComparisonDistribution – показывает, видна ли на гистограмме линия сравнения нормального распределения. True отображает линию.False скрывает линию.
  • showMean – показывает, видна ли на гистограмме линия среднего значения из статистики. True отображает линию.False скрывает линию.
  • showMedian – показывает, видна ли на гистограмме линия медианы из статистики. True отображает линию.False скрывает линию.
  • showStandardDeviation – показывает, видна ли на гистограмме линия средне-квадратического отклонения из статистики. True отображает линию.False скрывает линию.
Object
legend
(чтение и запись)

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

  • visible – показывает, отображается ли легенда в виде диаграммы. True отображает легенду. False скрывает легенду.
  • title – заголовок, отображаемый для легенды.
Object
line
(чтение и запись)

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

  • aggregation – статистический расчет, применяемый к значениям, агрегированным в каждую ячейку времени. Поддерживается следующая статистика: COUNT, SUM, MEAN, MEDIAN, MIN, и MAX. Отсутствие агрегирования означает, что каждое значение будет нанесено на диаграмму независимо от перекрывающихся или повторяющихся значений.
  • 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
matrixHeatChart
(чтение и запись)

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

  • aggregation – статистический расчет, применяемый к значениям, агрегированным в каждой ячейке. Поддерживается следующая статистика: COUNT, SUM, MEAN, MEDIAN, MIN, и MAX.
  • classCount – число классов, используемых в методе классификации.
  • classificationMethod – метод классификации, используемый для визуализации цвета ячейки. Поддерживаются следующие опции: equalIntervals, geometricalIntervals, naturalBreaks и quantiles.
  • nullPolicy – как отображаются суммированные ячейки, возвращающие значение null. Поддерживаются следующие опции: null и zero.
Object
qqPlot
(чтение и запись)

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

  • dataTransformationType – применяет преобразование к данным. Допустимые преобразования включают: none, logarithmic и squareRoot.
  • showReferenceLine – показывает, видна ли базовая линия в диаграмме КК. True отображает линию.False скрывает линию.
Object
scatter
(чтение и запись)

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

  • bubbleMinSize – минимальный размер точек пузырьковой диаграммы.
  • bubbleMaxSize – максимальный размер точек пузырьковой диаграммы.
  • showTrendLine – показывает, видна ли линия тренда в точечной диаграмме. True отображает линию.False скрывает линию.
Object
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
  • matrixHeatChart

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

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

  • field – имя поля, отображаемого на оси X.
  • logarithmic – указывает, является ли ось логарифмической.True отображает логарифмическую ось.False отображает линейную ось. Это свойство применяется только для точечных диаграмм и линейных графиков.
  • minimum – минимальная граница оси.
  • maximum – максимальная граница оси.
  • sort – метод сортировки, примененный к этой оси. ASC для сортировки по возрастанию и DESC – по убыванию. Это свойство применяется только для линейчатых диаграмм.
  • title – подпись оси, отображаемая в диаграмме.
Object
yAxis
(чтение и запись)

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

  • field – имя поля, отображаемого на оси Y.
    • Для линейчатых диаграмм и линейных графиков это свойство можно задать списком имен полей.
    • Для диаграмм хронометража данных и календарных диаграмм интенсивности в этом параметре указывается числовое поле.
    • Для точечных диаграмм field дополнительно допускает список из двух элементов, где первый – поле оси y, и второй – поле пропорционального символа.
    • Для диаграмм матрицы интенсивности, field дополнительно допускает список из двух элементов, где первый – поле оси y, и второй – числовое поле, которое будет агрегировано.
  • logarithmic – указывает, является ли ось логарифмической.True отображает логарифмическую ось. False отображает линейную ось. Это свойство применяется только для точечных диаграмм и линейных графиков.
  • maximum – минимальная граница оси.
  • minimum – максимальная граница оси.
  • sort – метод сортировки, примененный к этой оси. ASC используется для сортировки по возрастанию, DESC – для сортировки по убыванию. Это свойство применяется только для линейчатых диаграмм.
  • title – подпись оси, отображаемая в диаграмме.
Object

Обзор метода

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

Добавление класса Chart в слой или в автономную таблицу.

exportToSVG (path, width, height)

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

updateChart ()

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

Методы

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

Диаграмма будет добавлена в целевой объект. Аргумент layer_or_layerfile может быть объектом Layer или Table.

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

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

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

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

import arcpy
aprx = arcpy.mp.ArcGISProject("current")
map = aprx.listMaps()[0]
censusLayer = map.listLayers('Census Block Groups')[0]
chart = arcpy.Chart('MyChart')
chart.type = 'bar'
chart.title = 'Population by State'
chart.xAxis.field = 'StateName'
chart.yAxis.field = 'Population'
chart.bar.aggregation = 'SUM'
chart.xAxis.title = 'State'
chart.yAxis.title = 'Total Population'
chart.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()

Пример кода

Диаграмма, пример 1

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

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

Создает и экспортирует диаграмму на основе значений в списке. В примере показано, как список записывается в файл CSV, который затем можно использовать с целью создания диаграммы путем задания свойства dataSource.

import arcpy
import csv
temp_csv_file = r'c:\temp\data.csv'
out_svg_file = r'c:\temp\chart.svg'
# Data for automobile miles per gallon (MPG) and horsepower 
columns = ['mpg', 'horsepower'] 
data = [
    [18, 130], 
    [15, 165], 
    [26, 113],
    [18, 150],
    [28, 90], 
    [32, 61],
    [16, 150],
    [17, 140]
]
# Write this list to a CSV file
with open(temp_csv_file, 'w', newline='') as csvfile:
    writer = csv.writer(csvfile, delimiter=',')
    # Write column headers
    writer.writerow(columns)
    
    # Write data rows
    writer.writerows(data)
chart = arcpy.Chart('MyChart')
chart.type = 'scatter'
chart.title = 'Relationship between MPG and Horsepower'
chart.xAxis.field = 'mpg'
chart.yAxis.field = 'horsepower'
chart.dataSource = temp_csv_file
chart.exportToSVG(out_svg_file, width=750, height=400)