LINUX.ORG.RU

Свободная программа для рисования красивых диаграмм - есть такая?

 ,


12

4

Посоветуйте, пожалуйста, свободную программу для рисования диаграмм. Желательно, чтобы результат был красивым. Еще хотелось бы, чтобы она умела в LaTeX.

★★★★★

Dia есть экспорт в tikz. Inkscape и плагин к ней SVG2TikZ. Latexdraw.

А вообще есть Tikz. Сам использую inkscape, но чаще пакет chemfig или экспортирую из R через tikzdevice.

einhander ★★★★ ()
Последнее исправление: einhander (всего исправлений: 1)

linkdump, part one

anonymous ()
Ответ на: linkdump, part one от anonymous

Re: linkdump, part one

Вот это Вы мне подбросили информации для размышления. Спасибо!

aquadon ★★★★★ ()
Ответ на: linkdump, part one от anonymous

linkdump, part two

  • язык Supernova, статья. скриптовый псевдоестественный язык для быстрого прототипирования программ.
  • flockmod, flockdraw. совместная рисовалка в браузере
  • UML редактор на JavaScript, canvas в браузере
  • ещё был пример на JavaScript: вводим текстовый DSL диаграммы (блок-схемы), картинка на SVG отрисовывается сама. livecoding , FRP с изменениями по ходу. сейчас с ходу ссылку что-то не найду.

    что-то типа такого flowchart.js

  • на [url=]d3js (галерея) такую штуку написать довольно просто.
  • yEd для рисовалки диаграмм вручную
  • ещё можно взять REBOL или Red и нарисовать диаграммы самому. пример простой диаграммы. ещё есть диалект Draw: REBOL/Draw, Red/Draw. в Red есть реактивное программирование с livecoding и интерактивом.
  • на Tcl/Tk просто тысячи их, уже написаных редакторов. и некоторые умеют сохраняться в LaTeX: PSTicks, tikz, METAPOST, Asymptote.
anonymous ()
Ответ на: Re: linkdump, part one от aquadon

Re: linkdump, part one

ещё лови.

в общем, уточни свои требования.

самое простое+надёжное, имхо: текстовый DSL для отрисовки диаграмм и трансляция в тот же диалект LaTeX или прямо в картинки или в SVG.

SVG интересен в контексте SVG + JavaScript + реактивное программирование, livecoding прямо в браузере.

anonymous ()
Ответ на: Re: linkdump, part one от aquadon

Re: linkdump, part one

в какой нотации диаграммы?

anonymous ()
Ответ на: Re: linkdump, part one от anonymous

Re: linkdump, part one

Не понял вопроса на счет нотации.

У меня пока задача простая. Нужно написать в LaTeX краткий конспект для студентов. Для наглядности хотел составить диаграмму из нескольких прямоугольников (утверждения), которые соединены между собою стрелками (теоремы).

aquadon ★★★★★ ()

Каждый месяц поднимается тема, а воз и ныне там.

RazrFalcon ★★★★★ ()
Ответ на: Re: linkdump, part one от anonymous

Завтра на свежую голову буду читать материалы по ссылками и обдумывать.

Конечно, хотелось бы попутно освоить какой-нибудь универсальный «канонический» инструмент для этих целей.

Но красноглазить с кодом для tikz я не готов, ибо этот конспект - проявление моей доброй воли и помощь студентам. Не хочу тратить на него много времени.

aquadon ★★★★★ ()
Ответ на: комментарий от aquadon

Но красноглазить с кодом для tikz я не готов, ибо этот конспект - проявление моей доброй воли и помощь студентам. Не хочу тратить на него много времени.

Нет, тут я, пожалуй, написал тупость из разряда «не хочу красноглазить с LaTeX, хочу побыстрее».

В общем, нужно выбрать полезный обществу прошедший проверку временем инструмент для реализации задачи.

aquadon ★★★★★ ()
Ответ на: Re: linkdump, part one от aquadon

Re: linkdump, part one

ну то есть, графический язык моделирования какой?

диаграмму из нескольких прямоугольников (утверждения), которые соединены между собою стрелками (теоремы)

то есть, просто свой эскиз какой-то? без стандартов, спецификаций, DSL?

тогда можно взять тот же GraphViz или даже просто Ditaa.

см. примеры в org-mode, или отсюда

в ditaa эти квадратики рисуются очень просто. также, довольно удобно писать методички, задания по лабораторным и т.п в org-mode:

  • стали курсором в laba.org внутрь «блоков кода», нажали С-с С-с для выполнения => обновился :RESULT: с картинкой. если включён показ картинок («выполнить» такой блок кода или прописать в ~/.emacs):
    #+begin_src elisp 
    (org-toggle-inline-images t )
    #+end_src
    

    то сразу видим сгенерированную картинку (по текстовому DSL с описанием квадратиков, стрелочек).

    потом делаем C-c C-e или M-x org-export, M-x org-publish и из единого исходника в .org генерируем в кучу форматов: PDF через LaTeX, doc через OpenOffice ODT, HTML, XML, свой велосипед (экспорт настраиваемый).

    last, but not least: «грамотное программирование» (literate programming Дональда Кнута которое неграмотные надмозги переводят как «литературное»). а именно, M-x org-babel-tangle и «блоки кода» с :noweb myfilename.foo и <<другой блок кода(параметры,...)>> внутри
    #+NAME новый-блок-кода
    
    #+begin_src 10500-languages-to-choose-from :noweb myfilename.foo :var abc=xyz :var def=qwer
    кусок кода на языке foo
    <<другой-блок-кода(параметр1,параметр2,...)>>
    #+end_src
    
    в общем, смотри по Babel [url=http://orgmode.org/worg/org-contrib/babel/intro.html]введение[/url] и [url=http://orgmode.org/worg/org-contrib/babel/]примеры[/url] -- особенно годные статьи с архивами (как reproducible research строятся эти статьи с графиками и расчёткой) от Эрика Шульте (в журналах, на гитхабе или на его страничке)
    
    очень мощная вещь -- можно и примеры проиграть, и makefile для сборки написать, и все файлы проекта сразу развернуть.
    
    собрать этим makefile, который строится через tangle из "кусочков кода", сделать make compile/make run/make test, и включить примеры (и результаты их работы) в статью, которую тут же сверстать в PDF через LaTeX.
    
    книжки с примерами так писать очень удобно. ну или методички или задания по лабам. или ещё какую расчётку. 
    
    а слайды для презентаций тоже можно делать в org-mode, экспорт в LaTeX через Beamer.
anonymous ()
Ответ на: комментарий от aquadon

можно красноглазить не с LaTeX и tikz, Asymptote, METAPOST, PSTricks и прочее, — а просто и наглядно: красноглазить в Emacs org-mode babel M-x org-babel-tangle ;-)))

  • презентация Rigidus — лисперы пишут интернет-магазин на лиспе, с «literate deployment»
  • Эрик Шульте — см. публикации на тему «reproducible research» с примерами, гитхаб, статью в open access журнале — не поленись, и смотри zip архив, читай makefile, как собирается этот PDF
  • тоже Эрик, но другой. примеры, см. цитирование (запятая в начале блоков кода)
anonymous ()
Ответ на: Re: linkdump, part one от anonymous

fix formatting

last, but not least: «грамотное программирование» (literate programming Дональда Кнута которое неграмотные надмозги переводят как «литературное»). а именно, M-x org-babel-tangle и «блоки кода» с :noweb myfilename.foo и <<другой блок кода(параметры,...)>> внутри

#+NAME новый-блок-кода

#+begin_src 10500-languages-to-choose-from :noweb myfilename.foo :var abc=xyz :var def=qwer
кусок кода на языке foo
<<другой-блок-кода(параметр1,параметр2,...)>>
#+end_src

в общем, смотри по Babel введение и примеры — особенно годные статьи с архивами (как reproducible research строятся эти статьи с графиками и расчёткой) от Эрика Шульте (в журналах, на гитхабе или на его страничке)

очень мощная вещь — можно и примеры проиграть, и Makefile для сборки написать, и все файлы проекта сразу развернуть.

собрать этим Makefile, который строится через tangle из «кусочков кода», сделать make compile/make run/make test, и включить примеры (и результаты их работы) в статью, которую тут же сверстать в PDF через LaTeX.

книжки с примерами так писать очень удобно. ну или методички или задания по лабам. или ещё какую расчётку.

а слайды для презентаций тоже можно делать в org-mode, экспорт в LaTeX через Beamer.

anonymous ()
Ответ на: комментарий от aquadon

прошедший проверку временем инструмент

Emacs же.

anonymous ()

Добавлю три копейки: если диаграмма относительно простая - любым векторным редактором, потом экспорт в PDF и подключаем как ресурс к LaTeX-у. Если что-то сложное, то читать ссылки от анонима.

P.S. Сам начинал в Dia, потом осилил tikz. Теперь даже простое рисую в tikz. Слышал, что именно для блок-схем есть что-то удобнее (кажется, asymptote, если бы начинал изучать тему сейчас, рассмотрел бы это в первую очередь), но уже не было времени осваивать - tikz устраивает.

omegatype ★★ ()
Ответ на: Re: linkdump, part one от aquadon

TikZ

У меня пока задача простая. Нужно написать в LaTeX краткий конспект для студентов. Для наглядности хотел составить диаграмму из нескольких прямоугольников (утверждения), которые соединены между собою стрелками (теоремы).

Тогда самое простое это TikZ (Block diagrams examples). Он покрывает это всё.

Главное преимущество: Очень краткий и понятный код рисунка прямо внутри LaTeX-кода.

Пример:

  • Определяем стили (иерархия допустима).
  • Рисуем node с указанием расположения и применяемого стиля.
  • Рисуем линии (\draw) между нужными элементами (TikZ сам определит от куда начинать и где заканчивать).
\documentclass[tikz]{standalone}
\usepackage[utf8]{inputenc}
\usepackage[T2A]{fontenc}
\usepackage[russian]{babel}

\usepackage{xcolor}

\usepackage{tikz}
\usetikzlibrary{shapes.geometric}

\tikzset{
  basebox/.style={
    minimum width=3cm, minimum height=1cm,
    text centered, draw=black,
  },
  startstop/.style={ basebox,
    rectangle, rounded corners=0.4cm,
    fill=red!30,
  },
  io/.style={ basebox,
    trapezium, trapezium left angle=70, trapezium right angle=110,
    fill=blue!30,
  },
  process/.style={ basebox,
    rectangle,
    text width=2.8cm,
    fill=orange!30,
  },
  decision/.style={ basebox,
    diamond,
    fill=green!30,
  },
  arrow/.style={thick,>=stealth},
}

\begin{document}

    \begin{tikzpicture}[node distance=2cm]
      \node (start) [startstop] {Старт};
      \node (dec1) [decision, below of=start] {условие};
      \node (pro1) [process, below of=dec1] {список\\операций 1};
      \node (pro2) [process, below of=dec1, right of=dec1, xshift=1.5cm] {список\\операций 2};
      \node (stop) [startstop, below of=pro1] {Стоп};
      \draw [arrow, ->] (start) -- (dec1);
      \draw [arrow, ->] (dec1) -- node[anchor=east] {Да} (pro1);
      \draw [arrow, ->] (dec1) -| node[anchor=south] {Нет} (pro2);
      \draw [arrow, ->] (pro1) -- (stop);
      \draw [arrow, ->] (pro2) |- (stop);
    \end{tikzpicture}
    
\end{document}
AlexVR ★★★★★ ()
Ответ на: linkdump, part two от anonymous

Вот так ткнул мимоходом. Доставил карьерным самосвалом.

berrywizard ★★★★★ ()
Ответ на: комментарий от anonymous

update: plantuml plugins

оказывается, в PlantUML есть могучая кучка плагинов. помимо очевидных (ditaa и graphviz) и неочевидных (недоделанный порт graphviz на Java, самодостаточный jar без внешней зависимости от graphviz: хипстеры вон и на JavaScript пишут свой порт graphviz) есть и полезные:

  • latex plugin, генерация tikz. когда-то эта фича была экспериментальной пример1 пример2

    мякотка здесь в том, что этот tikz «% generated by Plantuml 7997beta»

  • наверное, можно допилить и блок-схемы через plantuml в LaTeX/tikz. точнее, activity diagamm в UML, и плагином сделать и другой вид блок-схем.
  • можно рисовать GUI
  • макрокнопка для Word или OpenOffice (ODT шаблон), обновляющая картинку из текстового описания диаграммы

    в интервью автор PlantUML говорит, что это была изначальная цель разработки PlantUML: кнопка в Word-е.

  • поддержка XMI для импорта UML моделей из «настоящего» моделлера — в зачаточном состоянии.
anonymous ()
Ответ на: update: plantuml plugins от anonymous

шок! сенсация!!! скандалы! интриги! расследования!

«программирование без кодирования» продвигает в своих статьях автор языка Supernova

прикоснуться к тайне

вступай и не кодируй

kiss my shiny metal ass!, вы, бледнотические кодеманки.

achtung! achtung! сделанные из мяса личинки программистов.

железный мужык, Бендер Несгибаемый вас всех оптимизирует/0.

anonymous ()
Ответ на: TikZ от AlexVR

Re: TikZ

хотя синтаксису есть куда расти (если использовать более декларативный DSL).

вот выше в ссылке про activity diagram на plantUML в самой последней диаграмме более наглядный синтаксис: не нужно рисовать стрелки между блоками, сам разводит.

опять же, по идее экспорт из plantuml в тот же tikz должен просто работать. то есть, компилируется во всё то же самое.

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

ну или взять org-mode babel и как метаязык потихоньку расписывать свой метаязык над tikz, приводя его более к plantuml виду через org-babel-tangle и <<включаемые(с,параметром)>> «блоки кода»

anonymous ()

Спасибо всем за участие в обсуждении. Наверное, набросаю диаграмму просто кодом tikz.

aquadon ★★★★★ ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.