Таблицы удобны для хранения точных числовых данных, но человеку часто нужны не точные цифры, а общее представление о величине какого-либо параметра. Поэтому табличные данные полезно дублировать диаграммами, которые отображают информацию с помощью графических элементов, таких как гистограммы, круговые диаграммы или графики.
Если раньше вы не пользовались таблицами Word, весьма вероятно, что какая-то часть ваших данных хранится в обычном текстовом файле. Теперь, почувствовав всю мощь программы Word, вы решили перенести их в красиво оформленную таблицу, а заодно построить диаграмму. Как быстрее решить эту задачу?
1. В Главном меню Windows выберите команду Программы > Стандартные > Блокнот.
Рис. 7.16. Пример текстового файла
2. Нажмите клавишу Tab и введите слово Январь.
3. Снова нажмите Tab и введите Февраль.
4. Продолжайте ввод слов и чисел в соответствии с рис. 7.16, отделяя их друг от друга символом табуляции.
5. Выберите команду Файл > Сохранить и запишите файл в папку Мои документы под именем Таблица.txt.
6. Закройте окно Блокнота. Теперь у вас есть пример обычного текстового файла с небольшой таблицей. Давайте импортируем ее в Word и проиллюстрируем имеющиеся числовые данные диаграммой.
7. В программе Word щелкните на кнопке Открыть панели инструментов Стандартная. В списке Тип файлов окна диалога открытия файла выберите пункт Все файлы, найдите только что созданный файл Таблица.1х1 и откройте его. В окне диалога Преобразование файла дважды щелкните на строке Только текст. Таблица появится в окне Word. Она может оказаться немного кривоватой, но это не имеет значения. Главное, что столбцы таблицы разделены символами табуляции.
8. Нажатием клавиш Ctrl+A выделите весь документ. Затем выберите команду Таблица > Преобразовать > Преобразовать в таблицу.
9. Проверьте, чтобы параметры окна диалога Преобразовать в таблицу были настроены в соответствии с рис. 7.17.
Рис. 7.17. Преобразование текста в таблицу
10. Щелкните на кнопке Автоформат.
Примечание Если данные текстового файла разделены не табуляциями, а, скажем, запятыми, выберите в разделе Разделитель окна диалога преобразования положение переключателя Другой и введите в одноименное поле соответствующий символ (запятую).
11. В окне диалога Автоформат таблицы выберите вариант Стандарт 1. Затем два раза щелкните на кнопке ОК. Таблица готова! Microsoft Office позволяет создавать диаграммы двумя способами: с помощью мастера диаграмм Excel, который уже встречался вам на занятии 2, или с помощью модуля Microsoft Graph, который доступен в различных приложениях Office. Сейчас давайте воспользуемся вторым вариантом.
12. Щелкните в любой ячейке полученной таблицы и выберите команду Таблица > Выделить > Таблица.
13. Выберите команду Вставка > Рисунок > Диаграмма. В документе Word появится диаграмма и откроется окно таблицы данных Microsoft Graph XP. Информация из таблицы Word будет перенесена в окно Graph XP, а меню и панели инструментов Word заменятся на соответствующие компоненты модуля Graph, как показано на рис. 7.18.
14. Щелкните на пустой области документа Word. Окно данных, панели инструментов и меню модуля Graph XP исчезнут, а ниже таблицы Word разместится диаграмма, представляющая данные этой таблицы в графической форме.
Рис. 7.18. Построение диаграммы на базе таблицы Word
Информация воспринимается легче, если представлена наглядно. Один из способов презентации отчетов, планов, показателей и другого вида делового материала – графики и диаграммы. В аналитике это незаменимые инструменты.
Построить график в Excel по данным таблицы можно несколькими способами. Каждый из них обладает своими преимуществами и недостатками для конкретной ситуации. Рассмотрим все по порядку.
Простейший график изменений
График нужен тогда, когда необходимо показать изменения данных. Начнем с простейшей диаграммы для демонстрации событий в разные промежутки времени.
Допустим, у нас есть данные по чистой прибыли предприятия за 5 лет:
Год | Чистая прибыль* |
2010 | 13742 |
2011 | 11786 |
2012 | 6045 |
2013 | 7234 |
2014 | 15605 |
* Цифры условные, для учебных целей.
Заходим во вкладку «Вставка». Предлагается несколько типов диаграмм:
Выбираем «График». Во всплывающем окне – его вид. Когда наводишь курсор на тот или иной тип диаграммы, показывается подсказка: где лучше использовать этот график, для каких данных.
Выбрали – скопировали таблицу с данными – вставили в область диаграммы. Получается вот такой вариант:
Прямая горизонтальная (синяя) не нужна. Просто выделяем ее и удаляем. Так как у нас одна кривая – легенду (справа от графика) тоже убираем. Чтобы уточнить информацию, подписываем маркеры. На вкладке «Подписи данных» определяем местоположение цифр. В примере – справа.
Улучшим изображение – подпишем оси. «Макет» – «Название осей» – «Название основной горизонтальной (вертикальной) оси»:
Заголовок можно убрать, переместить в область графика, над ним. Изменить стиль, сделать заливку и т.д. Все манипуляции – на вкладке «Название диаграммы».
Вместо порядкового номера отчетного года нам нужен именно год. Выделяем значения горизонтальной оси. Правой кнопкой мыши – «Выбрать данные» — «Изменить подписи горизонтальной оси». В открывшейся вкладке выбрать диапазон. В таблице с данными – первый столбец. Как показано ниже на рисунке:
Можем оставить график в таком виде. А можем сделать заливку, поменять шрифт, переместить диаграмму на другой лист («Конструктор» — «Переместить диаграмму»).
График с двумя и более кривыми
Допустим, нам нужно показать не только чистую прибыль, но и стоимость активов. Данных стало больше:
Но принцип построения остался прежним. Только теперь есть смысл оставить легенду. Так как у нас 2 кривые.
Добавление второй оси
Как добавить вторую (дополнительную) ось? Когда единицы измерения одинаковы, пользуемся предложенной выше инструкцией. Если же нужно показать данные разных типов, понадобится вспомогательная ось.
Сначала строим график так, будто у нас одинаковые единицы измерения.
Выделяем ось, для которой хотим добавить вспомогательную. Правая кнопка мыши – «Формат ряда данных» – «Параметры ряда» — «По вспомогательной оси».
Нажимаем «Закрыть» — на графике появилась вторая ось, которая «подстроилась» под данные кривой.
Это один из способов. Есть и другой – изменение типа диаграммы.
Щелкаем правой кнопкой мыши по линии, для которой нужна дополнительная ось. Выбираем «Изменить тип диаграммы для ряда».
Определяемся с видом для второго ряда данных. В примере – линейчатая диаграмма.
Всего несколько нажатий – дополнительная ось для другого типа измерений готова.
Строим график функций в Excel
Вся работа состоит из двух этапов:
- Создание таблицы с данными.
- Построение графика.
Пример: y=x(√x – 2). Шаг – 0,3.
Составляем таблицу. Первый столбец – значения Х. Используем формулы. Значение первой ячейки – 1. Второй: = (имя первой ячейки) + 0,3. Выделяем правый нижний угол ячейки с формулой – тянем вниз столько, сколько нужно.
В столбце У прописываем формулу для расчета функции. В нашем примере: =A2*(КОРЕНЬ(A2)-2). Нажимаем «Ввод». Excel посчитал значение. «Размножаем» формулу по всему столбцу (потянув за правый нижний угол ячейки). Таблица с данными готова.
Переходим на новый лист (можно остаться и на этом – поставить курсор в свободную ячейку). «Вставка» — «Диаграмма» — «Точечная». Выбираем понравившийся тип. Щелкаем по области диаграммы правой кнопкой мыши – «Выбрать данные».
Выделяем значения Х (первый столбец). И нажимаем «Добавить». Открывается окно «Изменение ряда». Задаем имя ряда – функция. Значения Х – первый столбец таблицы с данными. Значения У – второй.
Жмем ОК и любуемся результатом.
С осью У все в порядке. На оси Х нет значений. Проставлены только номера точек. Это нужно исправить. Необходимо подписать оси графика в excel. Правая кнопка мыши – «Выбрать данные» — «Изменить подписи горизонтальной оси». И выделяем диапазон с нужными значениями (в таблице с данными). График становится таким, каким должен быть.
Наложение и комбинирование графиков
Построить два графика в Excel не представляет никакой сложности. Совместим на одном поле два графика функций в Excel. Добавим к предыдущей Z=X(√x – 3). Таблица с данными:
Выделяем данные и вставляем в поле диаграммы. Если что-то не так (не те названия рядов, неправильно отразились цифры на оси), редактируем через вкладку «Выбрать данные».
А вот наши 2 графика функций в одном поле.
Графики зависимости
Данные одного столбца (строки) зависят от данных другого столбца (строки).
Построить график зависимости одного столбца от другого в Excel можно так:
Условия: А = f (E); В = f (E); С = f (E); D = f (E).
Выбираем тип диаграммы. Точечная. С гладкими кривыми и маркерами.
Выбор данных – «Добавить». Имя ряда – А. Значения Х – значения А. Значения У – значения Е. Снова «Добавить». Имя ряда – В. Значения Х – данные в столбце В. Значения У – данные в столбце Е. И по такому принципу всю таблицу.
Готовые примеры графиков и диаграмм в Excel скачать:
Точно так же можно строить кольцевые и линейчатые диаграммы, гистограммы, пузырьковые, биржевые и т.д. Возможности Excel разнообразны. Вполне достаточно, чтобы наглядно изобразить разные типы данных.
Такие задачи иногда возникают. Например, совсем недавно мне в руки попали данные натурного эксперимента, проводившегося 10 лет назад. Те графики, которые мне необходимы, оказались оформлены в виде… обычных растровых *.bmp-файлов. Таблиц со значениями среди материала по эксперименту не оказалось. А таблицы значений очень бы пригодились, ведь эти данные надо сравнить с моими результатами моделирования, а потом оформить всё это дело на должном уровне.
Эта проблема возникала ещё пару раз в прошлом. Например, когда я помогал моей любимой женщине делать курсовой по электрическим машинам — расчеты вели в Maple, а большинство расчетных данных имелись в учебнике Копылова в виде графиков. И это тоже растр. И много было попорчено крови, прежде чем нужные таблицы было вбиты нами в программу.
В общем, если у человека нет проблем, он их придумывает, чтобы успешно и героически их решать. Почесав затылок и вооружившись гуглом я стал искать не слишком болезненное решение задачи.
Понятно, что первый этап — растровые графики надо превратить в векторные. А из векторного формата, особенно если он открытый, числовые даные можно вытащить, маштабировать и превратить в таблицу.
Первым делом я опробовал Inkscape. Редактор этот я использую очень часто — несмотря на то что начало работы с ним давалось тяжело, на сегодня он — главный инструмент для рисования различных картин для статей, докладов и прочей научной документации.
Однако автоматические средства векторизации с задачей не справились, вернее справились, но не так как хотелось бы. Вполне возможно, что я не до конца разобрался с ними. В любом случае, попытки использовать Inkscape были оставлены на неопределенный срок и взор снова обратился к гуглу.
Ответ был найден… на ЛОРе! Ответом стал — Easy Trace Pro. По словам авторов эта программа — интелектуальный трассировщик картографических данных, и предназначена для векторизации карт.
Данная программа — проприетарное ПО для OS Windows, однако, вместе с платной версией 9 авторами предалагается полнофункциональная предыдущая версия — 7.99 для бесплатного скачивания и неограниченного использования. Кроме того, на сайте есть инструкция по запуску Easy Trace с помощью wine. Последнее я не пробовал — запустил виртуальную машину с виндой и установил бесплатную версию.
Результат превзошел мои ожидания. Возможно, использованная техника это очередной «велосипед», но она дала свои плоды, и если Вам это тоже интересно — прошу под кат.
Итак, у нас есть растровый график. По хорошему для данного примера надо бы взять тот график по эксперименту, что вызвал весь сыр-бор. Но (не надо кидать в меня тапком) я не буду его публиковать. Данные переданы мне для личного использования, а разрешения на публикацию никто не давал, а я не спрашивал. Так что для иллюстрации решения задачи возьмем мой график, предварительно превратив его в растровый, например в тот же PNG. PNG взят, чтобы пощадить время и нервы моих читателей, для ускорения загрузки картинки.
Устанавливаем Easy Trace Pro и создаем там новый проект на основе растрового файла
Задаем единицы измерения и положение начала координат — я взял миллиметры и левый нижний угол
В итоге наш проект готов
Векторизация растра это процесс не исключающий ручной труд. Тем более здесь несколько графиков, мои данные эксперимента тоже были такого плана. Поэтому, первое что мы делаем — выбираем цвет, по которому будет производится трассировка
Инструменты -> Трассировка -> Набор цветов
Мышинным курсором наводимся на нужный график и после появления в окошке у курсора нужного цвета кликаем.
На этом скрине курсор мыши не получился — видимо стесняется, но выбранный график видно на следующем скрине — он подсвечен розовым
Теперь будем трассировать. Руководство к программе я не читал, так что действовал на обум, и надо сказать, программа достаточно дружественна для нового пользователя
Инструменты -> Трассировка -> Криволинейная
После этого щелкаем курсором в начало графика
И программа чертит вдоль кривой графика довольно длинную линию, выбирая её из всего содержимого по заданному нами цвету. И останавливается только там, где её непонятно, куда идти дальше. На скриншоте видно — наткнулась на высокочастотную «мазню». Этот участок придется аккуратно пройти вручную
После того как мы минуем его, трассировка уверенно рванет дальше, точно идя по кривой графика
и опять остановится. До конца идти придется вручную, но очевидно, что для достаточно гладких кривых, процесс будет проходить автоматически без помех.
После того как мы прошли весь график, у нас имеется векторная кривая, которую надо конвертировать в таблицу точек.
В появившемся окне выбираем формат.
Надо сказать, выбор не велик, и единтвенная позиция, которая нас заинтересует это CSV, который можно будет открыть в Excel или LibreOffice Calc. Далее настраиваем параметры экспорта, в частности выбираем векторный слой, в котором расположен наш график
задаем имя файла
и обращаем внимание на тип разделителя колонок данных — запятая, что стоит по умолчанию, нас устроит
Всё, в файле graph.csv имеются данные, снятые с растрового графика.
Естественно, нас интересуют X, Y не в миллиметрах от левого нижнего угла, а единицы измерения, отложенные по осям. Кроме того, необходимо скорректировать положение начала координат. Этим мы займемся в LibreOffice Calc, хотя можно использовать и любое другое ПО, подходящее для обработки массивов данных.
Открываем таблицу данных в LibreOffice Calc.
Здесь обращаем внимание на кодировку, язык выбираем «вражеский» — дабы разделителем целой и дробной части была точка. Импортируем таблицу начиная с 4-й строки, игнорируя два последних столбца с нулями. Жмем ОК и получаем таблицу данных.
Теперь скорректируем ноль. Для этого измерим, на каком расстоянии находится ноль от нижнего и левого края картинки. От левого очевидно на 15,325 мм, так как это первая точка графика. Вычитаем это значение из всех значений первого столбца.
Ордината первой точки тоже равна нулю, значит из второго столбца надо вычесть 69,342. Но это в данном случае. В противном случае, в Easy Trace есть линеечка, которой можно определить смещение нуля.
Готово, нуль находится там где надо. Теперь вычислим масштаб по осям. Обмерим линейкой ось времени и ось ординат. Выходит такой расклад: 20 секундам соответствует 184,4 мм оси абсцисс, а 600 килоньтонам — 80,4 мм оси ординат. По пропорции корректируем значения с столбца C и D нашей таблицы.
В общем, ура — у нас есть таблица данных, выдранная из растрового графика. Осталось проверить насколько это всё соответствует истине.
Для исходного графика из примера у меня имеются данные (сам же их и получил), поэтому я просто построю оба графика и мы сравним их
Совпадение хромает лишь в местах, где линия графика была смазана на растре, но при должной сноровке можно было подогнать её и получше.
Тем не менее, у нас есть таблица данных, которые можно строить в вектор, интерполировать, и обрабатывать так, как нам требуется.
Изложенный подход довольно бесхитростный и доступен каждому. Сам делаю это впервые, по первой сработавшей подсказке, поэтому могу не ориентироваться в технике подобных работ. Если читатель может предложить что-то более рациональное, то автор открыт для конструктивной критики.
Благодарю за внимание!
P.S.: Easy Trace Pro прекрасно запускается и работает под wine, так что необходимости в виртуальной Windows нет
Информация воспринимается легче, если представлена наглядно. Один из способов презентации отчетов, планов, показателей и другого вида делового материала – графики и диаграммы. В аналитике это незаменимые инструменты.
Построить график в Excel по данным таблицы можно несколькими способами. Каждый из них обладает своими преимуществами и недостатками для конкретной ситуации. Рассмотрим все по порядку.
Простейший график изменений
График нужен тогда, когда необходимо показать изменения данных. Начнем с простейшей диаграммы для демонстрации событий в разные промежутки времени.
Допустим, у нас есть данные по чистой прибыли предприятия за 5 лет:
Год | Чистая прибыль* |
2010 | 13742 |
2011 | 11786 |
2012 | 6045 |
2013 | 7234 |
2014 | 15605 |
* Цифры условные, для учебных целей.
Заходим во вкладку «Вставка». Предлагается несколько типов диаграмм:
Выбираем «График». Во всплывающем окне – его вид. Когда наводишь курсор на тот или иной тип диаграммы, показывается подсказка: где лучше использовать этот график, для каких данных.
Выбрали – скопировали таблицу с данными – вставили в область диаграммы. Получается вот такой вариант:
Прямая горизонтальная (синяя) не нужна. Просто выделяем ее и удаляем. Так как у нас одна кривая – легенду (справа от графика) тоже убираем. Чтобы уточнить информацию, подписываем маркеры. На вкладке «Подписи данных» определяем местоположение цифр. В примере – справа.
Улучшим изображение – подпишем оси. «Макет» – «Название осей» – «Название основной горизонтальной (вертикальной) оси»:
Заголовок можно убрать, переместить в область графика, над ним. Изменить стиль, сделать заливку и т.д. Все манипуляции – на вкладке «Название диаграммы».
Вместо порядкового номера отчетного года нам нужен именно год. Выделяем значения горизонтальной оси. Правой кнопкой мыши – «Выбрать данные» — «Изменить подписи горизонтальной оси». В открывшейся вкладке выбрать диапазон. В таблице с данными – первый столбец. Как показано ниже на рисунке:
Можем оставить график в таком виде. А можем сделать заливку, поменять шрифт, переместить диаграмму на другой лист («Конструктор» — «Переместить диаграмму»).
График с двумя и более кривыми
Допустим, нам нужно показать не только чистую прибыль, но и стоимость активов. Данных стало больше:
Но принцип построения остался прежним. Только теперь есть смысл оставить легенду. Так как у нас 2 кривые.
Добавление второй оси
Как добавить вторую (дополнительную) ось? Когда единицы измерения одинаковы, пользуемся предложенной выше инструкцией. Если же нужно показать данные разных типов, понадобится вспомогательная ось.
Сначала строим график так, будто у нас одинаковые единицы измерения.
Выделяем ось, для которой хотим добавить вспомогательную. Правая кнопка мыши – «Формат ряда данных» – «Параметры ряда» — «По вспомогательной оси».
Нажимаем «Закрыть» — на графике появилась вторая ось, которая «подстроилась» под данные кривой.
Это один из способов. Есть и другой – изменение типа диаграммы.
Щелкаем правой кнопкой мыши по линии, для которой нужна дополнительная ось. Выбираем «Изменить тип диаграммы для ряда».
Определяемся с видом для второго ряда данных. В примере – линейчатая диаграмма.
Всего несколько нажатий – дополнительная ось для другого типа измерений готова.
Строим график функций в Excel
Вся работа состоит из двух этапов:
- Создание таблицы с данными.
- Построение графика.
Пример: y=x(√x – 2). Шаг – 0,3.
Составляем таблицу. Первый столбец – значения Х. Используем формулы. Значение первой ячейки – 1. Второй: = (имя первой ячейки) + 0,3. Выделяем правый нижний угол ячейки с формулой – тянем вниз столько, сколько нужно.
В столбце У прописываем формулу для расчета функции. В нашем примере: =A2*(КОРЕНЬ(A2)-2). Нажимаем «Ввод». Excel посчитал значение. «Размножаем» формулу по всему столбцу (потянув за правый нижний угол ячейки). Таблица с данными готова.
Переходим на новый лист (можно остаться и на этом – поставить курсор в свободную ячейку). «Вставка» — «Диаграмма» — «Точечная». Выбираем понравившийся тип. Щелкаем по области диаграммы правой кнопкой мыши – «Выбрать данные».
Выделяем значения Х (первый столбец). И нажимаем «Добавить». Открывается окно «Изменение ряда». Задаем имя ряда – функция. Значения Х – первый столбец таблицы с данными. Значения У – второй.
Жмем ОК и любуемся результатом.
С осью У все в порядке. На оси Х нет значений. Проставлены только номера точек. Это нужно исправить. Необходимо подписать оси графика в excel. Правая кнопка мыши – «Выбрать данные» — «Изменить подписи горизонтальной оси». И выделяем диапазон с нужными значениями (в таблице с данными). График становится таким, каким должен быть.
Наложение и комбинирование графиков
Построить два графика в Excel не представляет никакой сложности. Совместим на одном поле два графика функций в Excel. Добавим к предыдущей Z=X(√x – 3). Таблица с данными:
Выделяем данные и вставляем в поле диаграммы. Если что-то не так (не те названия рядов, неправильно отразились цифры на оси), редактируем через вкладку «Выбрать данные».
А вот наши 2 графика функций в одном поле.
Графики зависимости
Данные одного столбца (строки) зависят от данных другого столбца (строки).
Построить график зависимости одного столбца от другого в Excel можно так:
Условия: А = f (E); В = f (E); С = f (E); D = f (E).
Выбираем тип диаграммы. Точечная. С гладкими кривыми и маркерами.
Выбор данных – «Добавить». Имя ряда – А. Значения Х – значения А. Значения У – значения Е. Снова «Добавить». Имя ряда – В. Значения Х – данные в столбце В. Значения У – данные в столбце Е. И по такому принципу всю таблицу.
Скачать все примеры графиков
Готовые примеры графиков и диаграмм в Excel скачать:
Скачать шаблоны и дашборды с диаграммами для отчетов в Excel.
Как сделать шаблон, дашборд, диаграмму или график для создания красивого отчета удобного для визуального анализа в Excel? Выбирайте примеры диаграмм с графиками для интерактивной визуализации данных с умных таблиц Excel и используйте их для быстрого принятия правильных решений. Бесплатно скачивайте готовые шаблоны динамических диаграмм для использования их в дашбордах, отчетах или презентациях.
Точно так же можно строить кольцевые и линейчатые диаграммы, гистограммы, пузырьковые, биржевые и т.д. Возможности Excel разнообразны. Вполне достаточно, чтобы наглядно изобразить разные типы данных.
В данном примере используется Excel 2013 и Illustrator СС, но метод применим и для других версий и программ. Сложность низкая, требуются базовые навыки работы в Illustrator и Excel.
Работая над отчётом или графиком, мы, как правило, располагаем данными в текстовом виде: таблицей в Эксель или .DOC-файлом. Но что делать, если таблицы с данными нет, а в качестве исходника выступает картинка? В лучшем случае она векторная, в худшем — растровая и плохого качества. Такая задача нам попадалась не раз, так что мы решили написать небольшую инструкцию-подсказку.
В качестве исходника будет выступать вот такой безымянный скан без подписанных значений для каждого столбца. Ниже мы пошагово расскажем, как такую картинку можно перевести в интерактивную диаграмму, причем более наглядную.
Рис. 1. Исходная гистограмма
Для восстановления данных не стоит замерять линейкой столбцы на мониторе и выписывать их на бумажку, существует метод изящнее. Можно воспользоваться тем, что из файла в формате .SVG можно извлечь данные, пригодные для вставки в Эксель.
Отступление о формате .SVG: Базовый векторный формат, доступен во всех векторных редакторах, объекты в нём хранятся в виде наборов координат X и Y. За ноль считается левый верхний угол.
1. Открываем исходное изображение в Иллюстраторе. Нужно убедиться, что оно расположено строго горизонтально.
2. Расставляем направляющие с постоянным интервалом таким образом, чтобы на один год приходилась одна направляющая.
3. С помощью инструмента «Перо» создаем две ломанные кривые, вручную отмечая высоту столбцов. Принадлежащие одному году точки кривых размещаем друг под другом, ориентируясь на созданные на прошлом шаге направляющие. Это нужно для того, чтобы ряд координат X был одинаков у обеих кривых.
Рис. 2. Поверх исходной растровой картинки положены направляющие и нарисованы две векторные кривые
4. В формате .SVG отсчёт координат ведётся с левого верхнего угла монтажной области. Поэтому нашу диаграмму нужно отзеркалить сверху вниз так, чтобы ноль координат на графике совпал с точкой отсчёта .SVG-файла. Все объекты кроме кривых удаляем для того чтобы они не усложняли код .SVG-файла. На этом шаге нужно быть очень внимательным с горизонтальной осью. Она должна оказаться точно на верхней границе монтажной области (в нашем случае красная кривая в 1983 году имеет значение «0», поэтому этой точкой она касается горизонтальной оси).
Рис. 3. Лишнее удалено, кривые отзеркалены по вертикали и выровнены по верхнему левому углу монтажной области
5. Сохраняем документ в формате .SVG, сняв галку «использовать монтажные области». В появившемся диалоговом окне нажимаем на кнопку «Код SVG». Откроется текстовый редактор. Процесс сохранения можно не доводить до конца, так как сам .SVG-файл далее не потребуется.
Рис. 4. Сохранение в .SVG
6. В коде нас интересуют только координаты точек, из которых состоят красная и синяя кривые. На рисунке ниже искомые данные выделены красным. Проведём автозамену в два этапа так, чтобы целая и дробная части отделялись запятой, а не точкой. Это нужно для того, чтобы позднее Эксель правильно понимал формат числа.
Рис. 5. Искомые части кода
7. В неизменённых данных запятая разделяет пару координат X и Y. Так как запятая будет выполнять роль разделителя целой и дробной частей, то разделять координаты X и Y должен другой символ. В нашем случае это — точка с запятой. Проведём замену запятой на точку с запятой.
Рис. 6. Замена разделителя координат X и Y
8. Теперь можно заменить точки на запятые. Описанный порядок замены не позволит испортить данные. Если провести замену точки на запятую сразу в исходных данных, это приведёт к тому, что запятая будет выполнять несколько ролей и при обработке данных в Экселе возникнут трудности.
Рис. 7. Замена десятичного разделителя, итоговый формат данных
9. Вставляем первый из наборов координат в ячейку Экселя.
Рис. 8. Вставка в ячейку
10. Не снимая выделения с этой ячейки во вкладке меню «Данные» нажимаем «Текст по столбцам». Нужно разбить текстовую строку в ячейке на отдельные ячейки, каждая из которых будет содержать в себе пару координат: X и Y. В качестве разделителя ячеек выбираем «пробел».
Рис. 9. Разбивка текста на ячейки, первый шаг
Рис. 10. Разбивка текста на ячейки, пробел в качестве разделителя
11. Далее нам нужно превратить горизонтальный ряд ячеек в вертикальный. Для этого выделим все ячейки, копировать → нажать правой кнопкой мыши на пустую ячейку ниже → специальная вставка → транспонировать. Горизонтальный ряд удаляем, оставляя только вертикальный.
Рис. 11. Превращение строки в столбец
12. Теперь нужно разбить столбец надвое, в левом будут координаты X, в правом Y. Разделителем в примере выступит точка с запятой. После разбивки нужно проверить, чтобы строки следовали сверху вниз от минимума к максимуму, ориентируясь по первому столбцу (A). Этот столбец в настоящем примере соответствует координатам X.
Рис. 12. Разбивка столбца надвое
Рис. 13. Разделённые и отсортированные столбцы координат
13. Проводим описанную выше обработку и для второго набора координат, отвечающего за вторую кривую.
14. Данные уже можно отобразить в виде точечной диаграммы. Причём, новые версии Экселя распознают пары столбцов X и Y, если в контекстном меню диаграммы зайти в «Тип диаграммы» и рассмотреть предложенные варианты.
Рис. 14. Извлечённые данные и автоматически построенная точечная диаграмма
15. У обоих наборов координат столбец X одинаков. Заменим их столбцом годов как в исходной картинке. По данным такого вида можно строить графики и гистограммы.
Рис. 15. Координаты X заменены на года
16. Не забудьте, что в результате всех этих действий мы получили кривые, построенные по условным значениям, взятым из координат .SVG-файла. Вы сможете перевести все значения в реальные, если у вас есть хотя бы одно реальное значение для любой из точек. На рисунке ниже цифра 224 — реальное значение из сопровождающего текста. Ей соответствует значение 77,342 условных единиц (координата Y из .SVG). Получается, что в нашем примере все значения Y для каждой кривой надо умножить на коэффициент 3,14, чтобы получить реальные значения.
Рис. 16. Расчет коэффициента соответствия условных единиц реальным
17. Выделим коэффициент, копировать → выделить оба столбца Y → правая клавиша → специальная вставка → умножить.
Рис. 17. Домножение столбцов Y на коэффициент соответствия
18. В итоге у нас есть набор данных в Экселе, который соответствует исходной картинке, см. рисунок ниже.
Рис. 18. Исходная гистограмма со значениями
19. Такой тип диаграммы используется в исходнике, но это вовсе не значит, что он подобран хорошо. Если задача это позволяет, попробуйте подобрать более подходящий способ представления. В данном случае динамику по годам будет легче оценить по линейной диаграмме с маркерами.
Рис. 19. График с маркерами, построенный по обработанным данным
20. С помощью этой инструкции данные извлечённые из картинки можно обрабатывать, анализировать, строить по ним диаграммы другого типа. Нашей целью было сделать интерактивную визуализацию, ниже показан результат и генерирующий его код.
И вот что из этого получилось:
Если у вас есть похожие «помощники»– делитесь! Будем рады узнать что-то новое.
В подготовке материала вместе с Андреем Постуховым участвовали Олег Степанов и Максим Горчаков
Июн 29, 2017
{quote}{login=agent3}{date=29.04.2010 07:47}{thema=Re: Re: Как из диаграммы извлечь её исходные данные}{post}{quote}{login=webley}{date=28.04.2010 08:21}{thema=Re: Как из диаграммы извлечь её исходные данные}{post}{quote}{login=agent3}{date=27.04.2010 08:22}{thema=Как из диаграммы извлечь её исходные данные}{post}Как превратить диаграмму обратно в таблицу, т.е. извлечь из диаграммы её исходные данные? Помогите, пожалуйста!{/post}{/quote}
Значения из диаграммы можно извлечь следующим образом:
For Each v In ActiveChart.SeriesCollection(1).Values
Debug.Print v
Next v
А что с ними делать дальше — выводить на экран, записать на лист и т.д. — это уже зависит от вашей задачи. На конкретном примере будет проще показать…
{/post}{/quote}
Ничего не понятно… Вот Вам конкретный пример, покажите, пожалуйста (а сделаете, отправьте, пожалуйста на agent3@ukr.net ))){/post}{/quote}
Пример не качается.
For Each v In ActiveChart.SeriesCollection(1).Values
Debug.Print v
Next v
Этот код выдает все значения первого ряда активного графика. SeriesCollection(1)- первый ряд графика
Введение
Такие задачи иногда возникают. Например, совсем недавно мне в руки попали данные натурного эксперимента, проводившегося 10 лет назад. Те графики, которые мне необходимы, оказались оформлены в виде… обычных растровых *.bmp-файлов. Таблиц со значениями среди материала по эксперименту не оказалось. А таблицы значений очень бы пригодились, ведь эти данные надо сравнить с моими результатами моделирования, а потом оформить всё это дело на должном уровне.
Эта проблема возникала ещё пару раз в прошлом. Например, когда я помогал моей любимой женщине делать курсовой по электрическим машинам — расчеты вели в Maple, а большинство расчетных данных имелись в учебнике Копылова в виде графиков. И это тоже растр. И много было попорчено крови, прежде чем нужные таблицы было вбиты нами в программу.
В общем, если у человека нет проблем, он их придумывает, чтобы успешно и героически их решать. Почесав затылок и вооружившись гуглом я стал искать не слишком болезненное решение задачи.
Понятно, что первый этап — растровые графики надо превратить в векторные. А из векторного формата, особенно если он открытый, числовые даные можно вытащить, маштабировать и превратить в таблицу.
Первым делом я опробовал Inkscape. Редактор этот я использую очень часто — несмотря на то что начало работы с ним давалось тяжело, на сегодня он — главный инструмент для рисования различных картин для статей, докладов и прочей научной документации.
Однако автоматические средства векторизации с задачей не справились, вернее справились, но не так как хотелось бы. Вполне возможно, что я не до конца разобрался с ними. В любом случае, попытки использовать Inkscape были оставлены на неопределенный срок и взор снова обратился к гуглу.
Ответ был найден… на ЛОРе! Ответом стал — Easy Trace Pro. По словам авторов эта программа — интелектуальный трассировщик картографических данных, и предназначена для векторизации карт.
Данная программа — проприетарное ПО для OS Windows, однако, вместе с платной версией 9 авторами предалагается полнофункциональная предыдущая версия — 7.99 для бесплатного скачивания и неограниченного использования. Кроме того, на сайте есть инструкция по запуску Easy Trace с помощью wine. Последнее я не пробовал — запустил виртуальную машину с виндой и установил бесплатную версию.
Результат превзошел мои ожидания. Возможно, использованная техника это очередной «велосипед», но она дала свои плоды, и если Вам это тоже интересно — прошу под кат.
1. Постановка задачи
Итак, у нас есть растровый график. По хорошему для данного примера надо бы взять тот график по эксперименту, что вызвал весь сыр-бор. Но (не надо кидать в меня тапком) я не буду его публиковать. Данные переданы мне для личного использования, а разрешения на публикацию никто не давал, а я не спрашивал. Так что для иллюстрации решения задачи возьмем мой график, предварительно превратив его в растровый, например в тот же PNG. PNG взят, чтобы пощадить время и нервы моих читателей, для ускорения загрузки картинки.
Устанавливаем Easy Trace Pro и создаем там новый проект на основе растрового файла
Задаем единицы измерения и положение начала координат — я взял миллиметры и левый нижний угол
В итоге наш проект готов
2. Трассировка линии графика и конвертация в табличный формат
Векторизация растра это процесс не исключающий ручной труд. Тем более здесь несколько графиков, мои данные эксперимента тоже были такого плана. Поэтому, первое что мы делаем — выбираем цвет, по которому будет производится трассировка
Инструменты -> Трассировка -> Набор цветов
Мышинным курсором наводимся на нужный график и после появления в окошке у курсора нужного цвета кликаем.
На этом скрине курсор мыши не получился — видимо стесняется, но выбранный график видно на следующем скрине — он подсвечен розовым
Теперь будем трассировать. Руководство к программе я не читал, так что действовал на обум, и надо сказать, программа достаточно дружественна для нового пользователя
Инструменты -> Трассировка -> Криволинейная
После этого щелкаем курсором в начало графика
И программа чертит вдоль кривой графика довольно длинную линию, выбирая её из всего содержимого по заданному нами цвету. И останавливается только там, где её непонятно, куда идти дальше. На скриншоте видно — наткнулась на высокочастотную «мазню». Этот участок придется аккуратно пройти вручную
После того как мы минуем его, трассировка уверенно рванет дальше, точно идя по кривой графика
и опять остановится. До конца идти придется вручную, но очевидно, что для достаточно гладких кривых, процесс будет проходить автоматически без помех.
После того как мы прошли весь график, у нас имеется векторная кривая, которую надо конвертировать в таблицу точек.
Файл -> Экспорт
В появившемся окне выбираем формат.
Надо сказать, выбор не велик, и единтвенная позиция, которая нас заинтересует это CSV, который можно будет открыть в Excel или LibreOffice Calc. Далее настраиваем параметры экспорта, в частности выбираем векторный слой, в котором расположен наш график
задаем имя файла
и обращаем внимание на тип разделителя колонок данных — запятая, что стоит по умолчанию, нас устроит
Всё, в файле graph.csv имеются данные, снятые с растрового графика.
3. Перевод данных в интересующие нас единицы измерения
Естественно, нас интересуют X, Y не в миллиметрах от левого нижнего угла, а единицы измерения, отложенные по осям. Кроме того, необходимо скорректировать положение начала координат. Этим мы займемся в LibreOffice Calc, хотя можно использовать и любое другое ПО, подходящее для обработки массивов данных.
Открываем таблицу данных в LibreOffice Calc.
Здесь обращаем внимание на кодировку, язык выбираем «вражеский» — дабы разделителем целой и дробной части была точка. Импортируем таблицу начиная с 4-й строки, игнорируя два последних столбца с нулями. Жмем ОК и получаем таблицу данных.
Теперь скорректируем ноль. Для этого измерим, на каком расстоянии находится ноль от нижнего и левого края картинки. От левого очевидно на 15,325 мм, так как это первая точка графика. Вычитаем это значение из всех значений первого столбца.
Ордината первой точки тоже равна нулю, значит из второго столбца надо вычесть 69,342. Но это в данном случае. В противном случае, в Easy Trace есть линеечка, которой можно определить смещение нуля.
Готово, нуль находится там где надо. Теперь вычислим масштаб по осям. Обмерим линейкой ось времени и ось ординат. Выходит такой расклад: 20 секундам соответствует 184,4 мм оси абсцисс, а 600 килоньтонам — 80,4 мм оси ординат. По пропорции корректируем значения с столбца C и D нашей таблицы.
В общем, ура — у нас есть таблица данных, выдранная из растрового графика. Осталось проверить насколько это всё соответствует истине.
Для исходного графика из примера у меня имеются данные (сам же их и получил), поэтому я просто построю оба графика и мы сравним их
Совпадение хромает лишь в местах, где линия графика была смазана на растре, но при должной сноровке можно было подогнать её и получше.
Тем не менее, у нас есть таблица данных, которые можно строить в вектор, интерполировать, и обрабатывать так, как нам требуется.
Заключение
Изложенный подход довольно бесхитростный и доступен каждому. Сам делаю это впервые, по первой сработавшей подсказке, поэтому могу не ориентироваться в технике подобных работ. Если читатель может предложить что-то более рациональное, то автор открыт для конструктивной критики.
Благодарю за внимание!
Автор: maisvendoo
Источник