Ранее я уже подробно рассказывал о пузырьковых диаграммах. Кратко напомню.
Пузырьковая диаграмма – это разновидность точечной диаграммы, в которой точки данных заменены пузырьками, причем их размер служит дополнительным (третьим) измерением данных. На пузырьковой диаграмме, как и на точечной, нет оси категорий — и горизонтальная, и вертикальная оси являются осями значений. В дополнение к значениям 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, позволяющий создавать инфографику методом конструктора.
[1] Если вы не знакомы с записью кода VBA рекомендую заметку Excel. Суммирование по ячейкам, выделенным цветом, где я даю начальные сведения на эту тему
Я записала модуль в Вижуал Бейсик, как описано у вас для сумм цветных ячеек. Строю диаграмму, но не получается у меня ничего (на диаграмму правой кнопкой мыши, вставляю макрос). Пожалуйста, расскажите как пользоваться этим модулем.