ChartLib

Материал из MachineLearning.

(Различия между версиями)
Перейти к: навигация, поиск
м
Текущая версия (22:06, 29 октября 2015) (править) (отменить)
м (Ссылки)
 
(19 промежуточных версий не показаны.)
Строка 4: Строка 4:
== Основные функциональные возможности ==
== Основные функциональные возможности ==
-
[[Изображение:ChartLib-Spread.gif|200px|thumb|'''Пример:''' детализированный ход биржевых торгов.]]
+
[[Изображение:DynamicsMLru1.png|200px|thumb|'''Пример:''' динамика роста Ресурса www.MachineLearning.ru.]]
-
[[Изображение:ChartLib-Traffic.gif|200px|thumb|'''Пример:''' анализ трафика.]]
+
[[Изображение:ChartLib-Spread.png|200px|thumb|'''Пример:''' детализированный ход биржевых торгов.]]
 +
[[Изображение:ChartLib-Traffic.png|200px|thumb|'''Пример:''' анализ трафика.]]
 +
[[Изображение:ChartLib-HyperGeom.png|200px|thumb|'''Пример:''' плотность и функция [[гипергеометрическое распределение|гипергеометрического распределения]].]]
 +
[[Изображение:ChartLib-1NNProfile.png|200px|thumb|'''Пример:''' три модельные выборки и их [[профиль компактности|профили компактности]].]]
 +
[[Изображение:ChartLib-EffectiveShatterCoeff.png|200px|thumb|'''Пример:''' локальный эффективный коэффициент разнообразия правил-конъюнкций в задаче классификации UCI:Hepatitis.]]
* ChartLib позволяет строить графики следующих типов:
* ChartLib позволяет строить графики следующих типов:
Строка 14: Строка 18:
** вертикальные и горизонтальные гистограммы;
** вертикальные и горизонтальные гистограммы;
** сетевые и древовидные схемы.
** сетевые и древовидные схемы.
-
* В ChartLib нет предопределённых типов графиков. Формирование графика происходит на более низком уровне из точек, боксов, свечей, линий и заливок, с помощью которых можно формировать как стандартные, так и оригинальные спообы представления данных.
+
* В ChartLib нет предопределённых типов графиков. Формирование графика происходит на более низком уровне из точек, боксов, свечей, линий и заливок, с помощью которых можно формировать как стандартные, так и оригинальные способы представления данных.
* ChartLib имеет богатые возможности для работы с цветами, заливками, рамками, формой объектов, {{S|и т. д.}}, позволяя создавать профессиональный дизайн графиков.
* ChartLib имеет богатые возможности для работы с цветами, заливками, рамками, формой объектов, {{S|и т. д.}}, позволяя создавать профессиональный дизайн графиков.
Строка 23: Строка 27:
=== Способы вывода и интерактивные возможности ===
=== Способы вывода и интерактивные возможности ===
* ChartLib позволяет выводить графики в окно прикладной программы, на принтер и в файлы графических форматов BMP, EMF, PNG, JPEG, GIF.
* ChartLib позволяет выводить графики в окно прикладной программы, на принтер и в файлы графических форматов BMP, EMF, PNG, JPEG, GIF.
-
* Графические изображения могут быть импортированы в офисные документы через буфер обмена.
+
* Графические изображения могут быть импортированы в офисные документы через буфер обмена. График вставляется в векторном формате EMF, что обеспечивает высокое качество изображения. Пожалуйста, не вставляйте скрин-шоты — это сложнее, и выглядят они хуже!
* При выводе графика в окно ChartLib позволяет масштабировать и сдвигать изображения, выделять точки и просматривать дополнительную информацию о них, выбирать подмножества точек и выводить по ним отдельную информационную таблицу.
* При выводе графика в окно ChartLib позволяет масштабировать и сдвигать изображения, выделять точки и просматривать дополнительную информацию о них, выбирать подмножества точек и выводить по ним отдельную информационную таблицу.
* Несколько графиков могут быть отображены на одном слайде. При этом поддерживается возможность синхронного масштабирования осей.
* Несколько графиков могут быть отображены на одном слайде. При этом поддерживается возможность синхронного масштабирования осей.
Строка 29: Строка 33:
=== Возможности применения ===
=== Возможности применения ===
-
* Библиотека ChartLib может использоваться для генерации часто обновляемых графиков в Интернете (биржевой информации, голосований, серверной статистики).
+
* Библиотека ChartLib хорошо подходит для оформления графиков в книгах, статьях, отчётах, курсовых и выпускных работах. Файлы формата CHD легко генерировать в любых программах, начиная с {{S|MS Excel}}, заканчивая C++ и MatLab.
-
* Файлы графических изображений в форматах PNG, JPEG или GIF могут генерироваться с частотой до нескольких раз в секунду (в зависимости, конечно, от сложности изображения).
+
* Библиотека ChartLib может использоваться для генерации часто обновляемых графиков в Интернете. Файлы графических изображений в форматах PNG, JPEG или GIF могут генерироваться с частотой до нескольких раз в секунду (в зависимости, конечно, от сложности изображения).
* Библиотека ChartLib переносима под UNIX.
* Библиотека ChartLib переносима под UNIX.
Строка 46: Строка 50:
В свободно распространяемую демо-версию пакета '''ChartLive''' входит только программа <code>chdView.exe</code>, примеры CHD-файлов и документация. Функциональность библиотеки ChartLib в демо-версии поддерживается практически полностью.
В свободно распространяемую демо-версию пакета '''ChartLive''' входит только программа <code>chdView.exe</code>, примеры CHD-файлов и документация. Функциональность библиотеки ChartLib в демо-версии поддерживается практически полностью.
-
Демо-версия исключает любые коммерческие применения программы. Можно свободно использовать ее для учебных и научных целей.
+
Демо-версия исключает любые коммерческие применения программы. Можно свободно использовать её только для учебных и научных целей.
 +
 
 +
=== Инструкция по установке ===
 +
# Распаковать архив в выбранной директории, например, <code><nowiki>D:\ChartLib</nowiki></code>.
 +
# Рекомендуется зарегистрировать тип файлов с расширением chd, задав команду открытия chd-файлов:
 +
#: <code><nowiki>D:\ChartLib\bin\chdView.exe D:\ChartLib\bin\config.chd "%1"</nowiki></code>
 +
# В файле <code><nowiki>D:\ChartLib\bin\config.chd</nowiki></code> изменить строку, устанавливающую местоположение растровых шрифтов, используемых при сохранении графических файлов форматов PNG, JPEG и GIF (последний слэш в этой команде обязателен!):
 +
#: <code><nowiki>#CLFontsDir= D:\ChartLib\bin\clFonts\</nowiki></code>
 +
 
 +
=== Инструкция по вставке графиков в MS Word ===
 +
# Создайте CHD-файл. Откройте его вьюером <code>chdView</code> и проверьте, что он правильно отображается. Проверьте файл <code>chdView.log</code>, который записывается в текущую директорию, в нём не должно быть сообщений об ошибках. При необходимости установите размер окна и границы отображаемой области. Изображение будет именно таким, каким вы видите его в окне.
 +
# Заберите график в буфер обмена (<code>Ctrl+Ins</code>), в Ворде скопируйте буфер в нужное место документа (<code>Shift+Ins</code>). График вставляется в векторном формате EMF (Enhanced Windows Metafile). Для изменения размера графика тяните рамку за уголок, а не за грани; иначе график окажется искажён.
 +
 
 +
=== Инструкция по вставке графиков в LaTeX ===
 +
# Создайте CHD-файл. Откройте его вьюером <code>chdView</code> и проверьте, что он правильно отображается. Проверьте файл <code>chdView.log</code>, который записывается в текущую директорию, в нём не должно быть сообщений об ошибках. При необходимости установите размер окна и границы отображаемой области. Изображение будет именно таким, каким вы видите его в окне.
 +
# Теперь график надо записать в векторном формате EPS. Есть два способа:
 +
#* В меню вьюера <code>chdView</code> выберете '''Сохранить как''' и запишите файл графического изображения в формате EMF. С помощью какой-нибудь программы преобразования EMF в EPS сформируйте EPS-файл (Encapsulated PostScript). Есть удобные конвертеры: [http://www.wmf2eps.de.vu WMF2EPS], из дистрибутива LyX: [http://wiki.lyx.org/Windows/MetafileToEPSConverter Metafile to EPS Converter].
 +
#* В меню вьюера <code>chdView</code> выберете '''Печать''' и напечатайте график на виртуальном PDF-принтере. Откройте PDF-файл с помощью Adobe Acobat. Воспользуйтесь '''Tools / Advanced Editing / Crop Tool''', чтобы выделить область графика, иначе он выводится в верхней части страницы размера А4. Наконец, с помощью '''Export / Encapsulated Postscript''' создайте EPS-файл.
 +
# Вставьте график командой <code><nowiki>\includegraphics</nowiki></code> из пакета <code>graphicx</code>. Можно задать только горизонтальный размер картинки, либо только вертикальный, либо оба; но в последнем случае автор должен вручную подобрать правильное соотношение размеров. <br/>'''Пример:'''
 +
#: <code><nowiki>\begin{figure}[t]</nowiki></code>
 +
#: <code><nowiki>\includegraphics[width=100mm,height=60mm]{Figure7.eps}</nowiki></code>
 +
#: <code><nowiki>\caption{Подпись под рисунком.}</nowiki></code>
 +
#: <code><nowiki>\label{fig7}</nowiki></code>
 +
#: <code><nowiki>\end{figure}</nowiki></code>
 +
 
 +
=== Возможные неполадки и их устранение ===
 +
# ''График как-то странно искажается, как будто у всех числовых данных обнулили дробную часть.''
 +
#* Надо настроить десятичный разделитель с помощью команды <code><nowiki>#Syntax</nowiki></code>.
 +
# ''Вместо русских букв выводятся кракозябры.''
 +
#* Кодировка chd-файла должна быть либо Windows-1251, либо задаваться в начале chd-файла явно, командой <code><nowiki>#Encoding</nowiki></code>.
 +
# ''При сохранении GIF-файла все цвета неприятно исказились.''
 +
#* Формат GIF поддерживает только 256 цветов. Если на графике есть градиентные заливки, этого может не хватить. Используйте формат PNG.
 +
# ''При сохранении PNG-файла серый фон изменился на чёрный.''
 +
#* Фон по умолчанию прозрачный. Подложка окна по умолчанию серая. Подложка битмэпа в библиотеке GD по умолчанию чёрная. Накакая заливка фона по умолчанию не делается, чтобы сэкономить немного времени. Задайте цвет фона командой <code><nowiki>#Slide.Background</nowiki></code>.
 +
# ''При сохранении PNG-файла пропали все надписи.''
 +
#* Установите путь к CLF-шрифтам командой <code><nowiki>#CLFontsDir</nowiki></code>. Лучше это сделать один раз в конфигурационном файле <code><nowiki>config.chd</nowiki></code>.
 +
# ''При сохранении PNG-файла график выглядит немного не так, как в окне; например, круглые точки рисуются похуже.''
 +
#* Алгоритмы отрисовки примитивов в библиотеке GD не такие, как в Windows. Если очень нужен аутентичный битмап, сохраните график как BMP (это делается функциями Windows, а не GD), и затем конвертируйте BMP в PNG.
== Ссылки ==
== Ссылки ==
-
* [http://www.ccas.ru/voron/chartlib.html ChartLib] — страница проекта.
+
* [[Участник:Vokov]] страница разработчика.
-
* [http://www.ccas.ru/frc/chartlive/download/charlib.zip Дистрибутив] — свободно распространяемая демо-версия.
+
* [http://www.ccas.ru/voron/chartlib.html ChartLib] — старая страница проекта.
* [http://www.ccas.ru/frc/chartlive/intro.html Полная документация].
* [http://www.ccas.ru/frc/chartlive/intro.html Полная документация].
 +
* [[Media:ChartLiveDemo.zip|ChartLiveDemo.zip, 1.8Мб]] — свободно распространяемая демо-версия.
 +
* [[Media:ChartLiveTutorial.zip|ChartLiveTutorial.zip, 1.0Мб]] — презентация-тьюториал по формату CHD (PowerPoint).
 +
* [[Media:ChartLiveTutorial.pdf|ChartLiveTutorial.pdf, 1.5Мб]] — презентация-тьюториал по формату CHD (в формате PDF).
[[Категория:Инструменты и технологии]]
[[Категория:Инструменты и технологии]]

Текущая версия

ChartLib — библиотека деловой и научной графики для аналитических исследований, генерации графиков в Internet, подготовки графиков для публикаций и отчетов, встраивания графиков в приложения на Delphi и C#.

Содержание

Основные функциональные возможности

Пример: динамика роста Ресурса www.MachineLearning.ru.
Пример: динамика роста Ресурса www.MachineLearning.ru.
Пример: детализированный ход биржевых торгов.
Пример: детализированный ход биржевых торгов.
Пример: анализ трафика.
Пример: анализ трафика.
Пример: плотность и функция гипергеометрического распределения.
Пример: плотность и функция гипергеометрического распределения.
Пример: три модельные выборки и их профили компактности.
Пример: три модельные выборки и их профили компактности.
Пример: локальный эффективный коэффициент разнообразия правил-конъюнкций в задаче классификации UCI:Hepatitis.
Пример: локальный эффективный коэффициент разнообразия правил-конъюнкций в задаче классификации UCI:Hepatitis.
  • ChartLib позволяет строить графики следующих типов:
    • двумерные графики, содержащие точки, линии и многоугольники;
    • графики с разрывной горизонтальной осью;
    • многодневные графики;
    • биржевые свечные графики;
    • вертикальные и горизонтальные гистограммы;
    • сетевые и древовидные схемы.
  • В ChartLib нет предопределённых типов графиков. Формирование графика происходит на более низком уровне из точек, боксов, свечей, линий и заливок, с помощью которых можно формировать как стандартные, так и оригинальные способы представления данных.
  • ChartLib имеет богатые возможности для работы с цветами, заливками, рамками, формой объектов, и т. д., позволяя создавать профессиональный дизайн графиков.

Формат описания данных

  • ChartLib имеет собственный формат входных данных CHD (CHart Description). Файлы формата CHD — это обычные текстовые файлы, в которых записываются как исходные данные, так и командные строки, задающие структуру и внешний вид графика.
  • Поддерживается более 150 команд, более 50 свойств точек графика, имеется встроенный калькулятор арифметических выражений.

Способы вывода и интерактивные возможности

  • ChartLib позволяет выводить графики в окно прикладной программы, на принтер и в файлы графических форматов BMP, EMF, PNG, JPEG, GIF.
  • Графические изображения могут быть импортированы в офисные документы через буфер обмена. График вставляется в векторном формате EMF, что обеспечивает высокое качество изображения. Пожалуйста, не вставляйте скрин-шоты — это сложнее, и выглядят они хуже!
  • При выводе графика в окно ChartLib позволяет масштабировать и сдвигать изображения, выделять точки и просматривать дополнительную информацию о них, выбирать подмножества точек и выводить по ним отдельную информационную таблицу.
  • Несколько графиков могут быть отображены на одном слайде. При этом поддерживается возможность синхронного масштабирования осей.
  • Несколько слайдов могут быть собраны в фильм (слайд-шоу). При выводе графика в окно можно включить режим просмотра фильма, когда слайды будут сменять друг друга автоматически.

Возможности применения

  • Библиотека ChartLib хорошо подходит для оформления графиков в книгах, статьях, отчётах, курсовых и выпускных работах. Файлы формата CHD легко генерировать в любых программах, начиная с MS Excel, заканчивая C++ и MatLab.
  • Библиотека ChartLib может использоваться для генерации часто обновляемых графиков в Интернете. Файлы графических изображений в форматах PNG, JPEG или GIF могут генерироваться с частотой до нескольких раз в секунду (в зависимости, конечно, от сложности изображения).
  • Библиотека ChartLib переносима под UNIX.

Пакет ChartLive

На основе библиотеки ChartLib разработан пакет программ ChartLive для MS Windows, в состав которого входят:

  • Приложение chdView.exe для просмотра файлов формата CHD.
  • Утилита chdConv.exe для преобразования файлов формата CHD в графические изображения форматов BMP, EMF, PNG, JPEG или GIF.
  • Утилита ttf2clf.exe для формирования растровых шрифтов внутреннего формата CLF, используемых при генерации растровых графических изображений PNG, JPEG или GIF.
  • Компонент SliChart.pas для встраивания графиков в собственные приложения, разрабатываемые в среде DELPHI.
  • Компонент SliChart.csh для встраивания графиков в собственные приложения, разрабатываемые в среде Microsoft Visual Studio на языке C#.
  • Документация, доступная также через сайт проекта.
  • Примеры CHD-файлов.

Свободно распространяемая демо-версия

В свободно распространяемую демо-версию пакета ChartLive входит только программа chdView.exe, примеры CHD-файлов и документация. Функциональность библиотеки ChartLib в демо-версии поддерживается практически полностью.

Демо-версия исключает любые коммерческие применения программы. Можно свободно использовать её только для учебных и научных целей.

Инструкция по установке

  1. Распаковать архив в выбранной директории, например, D:\ChartLib.
  2. Рекомендуется зарегистрировать тип файлов с расширением chd, задав команду открытия chd-файлов:
    D:\ChartLib\bin\chdView.exe D:\ChartLib\bin\config.chd "%1"
  3. В файле D:\ChartLib\bin\config.chd изменить строку, устанавливающую местоположение растровых шрифтов, используемых при сохранении графических файлов форматов PNG, JPEG и GIF (последний слэш в этой команде обязателен!):
    #CLFontsDir= D:\ChartLib\bin\clFonts\

Инструкция по вставке графиков в MS Word

  1. Создайте CHD-файл. Откройте его вьюером chdView и проверьте, что он правильно отображается. Проверьте файл chdView.log, который записывается в текущую директорию, в нём не должно быть сообщений об ошибках. При необходимости установите размер окна и границы отображаемой области. Изображение будет именно таким, каким вы видите его в окне.
  2. Заберите график в буфер обмена (Ctrl+Ins), в Ворде скопируйте буфер в нужное место документа (Shift+Ins). График вставляется в векторном формате EMF (Enhanced Windows Metafile). Для изменения размера графика тяните рамку за уголок, а не за грани; иначе график окажется искажён.

Инструкция по вставке графиков в LaTeX

  1. Создайте CHD-файл. Откройте его вьюером chdView и проверьте, что он правильно отображается. Проверьте файл chdView.log, который записывается в текущую директорию, в нём не должно быть сообщений об ошибках. При необходимости установите размер окна и границы отображаемой области. Изображение будет именно таким, каким вы видите его в окне.
  2. Теперь график надо записать в векторном формате EPS. Есть два способа:
    • В меню вьюера chdView выберете Сохранить как и запишите файл графического изображения в формате EMF. С помощью какой-нибудь программы преобразования EMF в EPS сформируйте EPS-файл (Encapsulated PostScript). Есть удобные конвертеры: WMF2EPS, из дистрибутива LyX: Metafile to EPS Converter.
    • В меню вьюера chdView выберете Печать и напечатайте график на виртуальном PDF-принтере. Откройте PDF-файл с помощью Adobe Acobat. Воспользуйтесь Tools / Advanced Editing / Crop Tool, чтобы выделить область графика, иначе он выводится в верхней части страницы размера А4. Наконец, с помощью Export / Encapsulated Postscript создайте EPS-файл.
  3. Вставьте график командой \includegraphics из пакета graphicx. Можно задать только горизонтальный размер картинки, либо только вертикальный, либо оба; но в последнем случае автор должен вручную подобрать правильное соотношение размеров.
    Пример:
    \begin{figure}[t]
    \includegraphics[width=100mm,height=60mm]{Figure7.eps}
    \caption{Подпись под рисунком.}
    \label{fig7}
    \end{figure}

Возможные неполадки и их устранение

  1. График как-то странно искажается, как будто у всех числовых данных обнулили дробную часть.
    • Надо настроить десятичный разделитель с помощью команды #Syntax.
  2. Вместо русских букв выводятся кракозябры.
    • Кодировка chd-файла должна быть либо Windows-1251, либо задаваться в начале chd-файла явно, командой #Encoding.
  3. При сохранении GIF-файла все цвета неприятно исказились.
    • Формат GIF поддерживает только 256 цветов. Если на графике есть градиентные заливки, этого может не хватить. Используйте формат PNG.
  4. При сохранении PNG-файла серый фон изменился на чёрный.
    • Фон по умолчанию прозрачный. Подложка окна по умолчанию серая. Подложка битмэпа в библиотеке GD по умолчанию чёрная. Накакая заливка фона по умолчанию не делается, чтобы сэкономить немного времени. Задайте цвет фона командой #Slide.Background.
  5. При сохранении PNG-файла пропали все надписи.
    • Установите путь к CLF-шрифтам командой #CLFontsDir. Лучше это сделать один раз в конфигурационном файле config.chd.
  6. При сохранении PNG-файла график выглядит немного не так, как в окне; например, круглые точки рисуются похуже.
    • Алгоритмы отрисовки примитивов в библиотеке GD не такие, как в Windows. Если очень нужен аутентичный битмап, сохраните график как BMP (это делается функциями Windows, а не GD), и затем конвертируйте BMP в PNG.

Ссылки

Личные инструменты