Ранее я уже подробно рассказывал о пузырьковых диаграммах. Кратко напомню.
Пузырьковая диаграмма – это разновидность точечной диаграммы, в которой точки данных заменены пузырьками, причем их размер служит дополнительным (третьим) измерением данных. На пузырьковой диаграмме, как и на точечной, нет оси категорий — и горизонтальная, и вертикальная оси являются осями значений. В дополнение к значениям X и значениям Y, наносимым на точечную диаграмму, на пузырьковой диаграмме показаны также значения Z (размер).
Пузырьковые диаграммы позволяют наглядно представить и анализировать взаимозависимости трех переменных.
В качестве примера построения пузырьковой диаграммы я привел распределение населения России по федеральным округам (рис. 1; см. также Excel-файл). Карта России была найдена в Интернете, сохранена как рисунок и импортирована в качестве фона области построения диаграммы. Координаты (X и Y) каждого «пузыря» были подобраны вручную.
Рис. 1. Распределение населения России по федеральным округам
Скачать заметку в формате Word, пример Подписи к пузырьковой диаграмме в формате zip-архива; политика провайдера не позволяет размещать на сайте файлы, содержащие код VBA; поэтому я заархивировал Excel-файл.
Поскольку доля населения определялась размером пузырей, мне хотелось вывести на диаграмме в качестве подписей названия округов. К сожалению, стандартными средствами Excel это сделать нельзя (рис. 2). Видно, что в качестве подписей Excel предлагает вывести: имя ряда, значение Х, значение Y, размер пузыря или любую комбинацию этих параметров.
Рис. 2. Подписи данных. Стандартные возможности Excel
И вот недавно в книге Гладкий А.А., Чиртик А.А. «Excel 2007. Трюки и эффекты» я встретил макрос [1], который позволил мне вывести на диаграмму названия округов.
Вот его код
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 |
Sub ShowLabels() Dim rgLabels As Range 'Диапазон с подписями Dim chrChart As Chart 'Диаграмма Dim intPoint As Integer 'Точка, для которой добавляется подпись 'Определение диаграммы Set chrChart = ActiveSheet.ChartObjects(1).Chart 'Запрос на ввод диапазона с исходными данными On Error Resume Next Set rgLabels = Application.InputBox("Укажите диапазон с подписями",_ Type:=8) If rgLabels Is Nothing Then Exit Sub On Error GoTo 0 'Добавление подписей chrChart.SeriesCollection(1).ApplyDataLabels_ Type:=xlDataLabelsShowValue, AutoText:=True, LegendKey:=False 'Просмотр диапазона и назначение подписей For intPoint = 1 To chrChart.SeriesCollection(1).Points.Count chrChart.SeriesCollection(1).Points(intPoint).DataLabel.Text_ = rgLabels(intPoint) Next intPoint End Sub Sub DeleteLabels() 'Удаление подписей диаграммы ActiveSheet.ChartObjects(1).Chart.SeriesCollection(1).HasDataLabels_ = False End Sub |
Код содержит две процедуры: создать подписи к данным диаграммы и удалить подписи.
Использование кода позволяет нанести на пузырьковую диаграмму названия округов (рис. 3)
Рис. 3. Размещение подписей данных с использованием кода VBA
Приведенный код можно использовать не только для пузырьковых диаграмм.
Рекомендую также обратить внимание на сервис Canva, позволяющий создавать инфографику методом конструктора.
Дополнение от 22.05.2021
С момента написания заметки прошло 9 лет, а MS не стоит на месте)) Так что в современных версиях Excel такие ухищрения не требуются. Сейчас в качестве подписей к точкам данных можно назначить любые значения из диапазона ячеек:
Чтобы увеличить изображение кликните на нем правой кнопкой мыши и выберите Открыть картинку в новой вкладке
[1] Если вы не знакомы с записью кода VBA рекомендую заметку Excel. Суммирование по ячейкам, выделенным цветом, где я даю начальные сведения на эту тему
Я записала модуль в Вижуал Бейсик, как описано у вас для сумм цветных ячеек. Строю диаграмму, но не получается у меня ничего (на диаграмму правой кнопкой мыши, вставляю макрос). Пожалуйста, расскажите как пользоваться этим модулем.
Добрый день! Благодарю, данный макрос сработал на точечной диаграмме.
Но при этом непонятно, как его применить для других трех рядов данных. Изменение номера коллекции не помогает.
Вложение Podpisi_tochechnaya_diagrammaa.xlsx
Никита, в современных версиях Excel, код VBA не нужен для этих целей. Я написал дополнение к заметке (см. выше).