Сводка
Класс Chart задает диаграмму 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 (чтение и запись) | Задает дополнительные свойства, которые применяются к линейным диаграммам.
| Object |
boxPlot (чтение и запись) | Задает дополнительные свойства, которые применяются к ящичковым диаграммам.
| Object |
calendarHeatChart (чтение и запись) | Задает дополнительные свойства, которые применяются к календарным диаграммам интенсивности.
| Object |
dataClock (чтение и запись) | Задает дополнительные свойства, которые применяются к диаграмме хронометража данных.
| Object |
dataSource (чтение и запись) | Устанавливает источник данных диаграммы. Когда диаграмма экспортируется с использованием метода exportToSVG или отображается в ArcGIS Notebook, источник данных считывается и отображается на диаграмме. К допустимым источникам данных относятся пути к наборам данных, включая локальные наборы данных, пути UNC, URL-адреса служб и объекты arcpy.mp Layer. | String |
description (чтение и запись) | Задает описание диаграммы. Текст диаграммы отображается внизу вида диаграммы. | String |
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) | Добавление класса 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()
Пример кода
Добавьте объект 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)