Chart
Краткая информация
Класс Chart задает диаграмму ArcGIS Pro. Этот класс позволяет создавать различные типы диаграмм, включая линейчатые диаграммы, линейные графики, точечные диаграммы, матрицы точечных диаграмм, графики КК, гистограммы, ящичковые диаграммы и диаграммы хронометража данных. Этот класс также может использоваться для определения названия, осей и других свойств диаграмм.
Более подробно о диаграммах в ArcGIS Pro
Прежние версии:
Класс Chart является родительским классом для дополнительных подклассов в модуле arcpy.charts. Подклассы были разработаны как более удобная и интуитивно понятная альтернатива классу Chart. Начиная с ArcGIS Pro 2.9 класс Chart признан устаревшим и не получает новых функций. Вместо этого рекомендуется использовать эти подклассы в модуле arcpy.charts.
Обсуждение
Диаграммы помогают представить информацию о пространственных объектах карты и отношениях между ними визуальным способом. Диаграммы также могут быть созданы для непространственных таблиц и могут отображать дополнительную информацию об объектах на карте или ту же информацию другим способом. Диаграммы дополняют карту, визуализируя информацию, которую можно просуммировать или извлечь из таблиц. В диаграмме вы можете быстро сравнить объекты и понять функциональные отношения между объектами, и таким образом визуализировать распределение, тренды и структуру данных, что трудно заметить иным способом.
Диаграммы могут быть созданы с использованием объекта Chart и добавлены в слой или таблицу в проекте ArcGIS Pro. Чтобы добавить диаграмму в слой в проекте, создайте объект Chart, настройте его свойства и свяжите объект Chart с arcpy.mp.Layer из arcpy.mp.ArcGISProject. Созданную таким образом диаграмму можно открыть в разделе Диаграммы под слоем на панели Содержание, когда этот проект открыт в ArcGIS Pro.
У объекта Chart есть свойство dataSource, которое можно использовать для создания диаграммы для источников данных, включая различные форматы классов пространственных объектов и таблиц, а также веб-слои (сервисы объектов). Диаграмму можно экспортировать в файл .svg для визуализации. Объекты Chart поддерживают расширенное представление в Блокнотах и могут быть визуализированы графически.

Синтаксис
Chart(name)
| Имя | Объяснение | Тип данных |
|---|---|---|
|
name |
The name of the chart. A chart must have a unique name per layer. This name is only used for identification; it is not displayed. |
String |
Свойства
| Имя | Объяснение | Тип данных |
|---|---|---|
|
bar (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к линейчатым диаграммам.
|
Object |
|
boxPlot (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к ящичковым диаграммам.
|
Object |
|
calendarHeatChart (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к календарным диаграммам интенсивности.
|
Object |
|
dataClock (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к диаграмме хронометража данных.
|
Object |
|
dataSource (Чтение / Запись) |
Устанавливает источник данных диаграммы. Когда диаграмма экспортируется с использованием метода |
String |
|
description (Чтение / Запись) |
Задает описание диаграммы. Текст диаграммы отображается внизу вида диаграммы. |
String |
|
displaySize (Чтение / Запись) |
Размер диаграммы при экспорте с помощью метода |
List |
|
histogram (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к гистограммам.
|
Object |
|
legend (Чтение / Запись) |
Задает свойства легенды диаграммы.
|
Object |
|
line (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к линейным графикам.
|
Object |
|
matrixHeatChart (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к диаграммы матрицы интенсивности.
|
Object |
|
qqPlot (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к диаграммам КК.
|
Object |
|
scatter (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к точечным диаграммам.
|
Object |
|
scatterMatrix (Чтение / Запись) |
Задает дополнительные свойства, которые применяются к матрицам точечных диаграмм.
|
Object |
|
title (Чтение / Запись) |
Задает заголовок диаграммы. Текст заголовка появляется в верхней части вида диаграммы и используется как надпись на панели Содержание на вкладке |
String |
|
type (Чтение / Запись) |
Задает тип создаваемой диаграммы. Допустимые опции включают следующее:
|
String |
|
xAxis (Чтение / Запись) |
Задает свойства оси x.
|
Object |
|
yAxis (Чтение / Запись) |
Задает свойства оси y.
|
Object |
Методы
addToLayer(layer_or_layerfile)
Метод addToLayer добавляет объект диаграммы в представление слоя или таблицы.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
layer_or_layerfile |
The chart will be added to the target object. This argument can be a |
Object |
Добавьте диаграмму к существующему слою.
import arcpy
# Insert creation of chart object here
# ...
aprx = arcpy.mp.ArcGISProject("current")
map = aprx.listMaps()[0]
censusLayer = map.listLayers('Census Block Groups')[0]
# Add chart object to a layer
chart.addToLayer(censusLayer)
exportToSVG(path, width, height)
Метод exportToSVG экспортирует диаграмму в формат SVG.
| Имя | Объяснение | Тип данных |
|---|---|---|
|
path |
Папка, в которой будет сохранена диаграмма в формате SVG. |
String |
|
width |
Ширина выходной графики. |
Integer |
|
height |
Высота выходной графики. |
Integer |
Экспортируйте диаграмму, содержащую источник данных слоя проекта в файл .svg.
import arcpy
# Insert creation of chart object here
# ...
aprx = arcpy.mp.ArcGISProject('current')
censusLayer = aprx.listMaps()[0].listLayers('Census Block Groups')[0]
# Set data source of chart object to a layer in current project
chart.dataSource = censusLayer
# Save the chart to file with dimensions width=500, height=500
chart.exportToSVG('populationByState.svg', 500, 500)
updateChart()
Метод updateChart обновляет свойства диаграммы для синхронизации изменений между объектом и диаграммой, предварительно добавленной к слою.
Используйте метод updateChart для синхронизации изменений свойств диаграммы в слое.
import arcpy
# Insert creation of chart object here
# ...
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]
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)
Создает и экспортирует диаграмму на основе значений в списке. В примере показано, как список записывается в файл 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)