Chart

Эта документация ArcGIS 2.7 была перемещена в архив и более не обновляется. Ресурсы и ссылки могут быть устаревшими. См. самую последнюю документацию.

Сводка

Класс 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)