Or I don't know how to describe it, because right now I can't find an example, but more "comic" like maybe. I know that Venka Subramanian once had such a nice article about Akka with beautiful diagrams, but can't find it either :(
- "How do I teach it to make these halfcircle-circle joints of component diagrams?"
- Sequence diagrams are a bit slow to make with it, because yeD not knowing their semantics and not doing much for you.
Apart from that, it has many features I depend on and that save time:
+ far more functionality than things like drawio
+ performance when dragging stuff around, no lags like in many browser apps
+ Export formats: SVG, PDF, PNG, graphml (its own format, so that you can edit later), others - Also looking like the diagram you created and looking clean, now like Dia
+ forcing rectangular edges
+ connecting edges and shapes so that they stick together, still enforcing rectangular edges, something I find very difficult with other tools like Inkscape and being able to connect the edges to any point of the shape, not so limited like Dia.
+ moving anything will bring up helping lines and snapping to certain alignments
+ when edges cross there is a setting to display "bridges"
+ Import SVG as new shapes
+ many settings for shapes and independently for labels
+ can add multiple labels to a shape or edge (multiplicities in class diagrams for example, or cardinalities in ERMs)
and probably more thing I don't remember right now.
It is one of the very few Java tools, that really works well for me.
For ASCII I recommend taking a look at Emacs artist mode, especially, if you are already using Emacs to write the code.
With that said, it's just good enough for a free product, though it doesn't have any special edge over some of the web-based alternatives out there.
A very impressive feature IMO is automatic re-arrangment. Typical use case, when you want to draw complex activity of class diagrams when, e.g. following some legacy code, or just brainstorming ideas, it's easy to end up with a very tangled mess of shapes and arrows. yED has this magic button that rearranges the graph in a smart way, mostly based on direction of edges. And suddenly your diagram looks sane again. Kudos to them for this.
I've found it fantastic for eg UML-like class diagrams. It has a beautifully simplistic approach to UML (which is an overdesigned mess, but that doesn't mean that all class diagrams are useless): for each class, the method list and attribute list are just two multiline text fields. Compare that to other UML tools that have a "Edit Method" dialog and whatnot.
The UX is amazing, especially once you get the hang of it and know how to circumvent its few quirks. I find that for many kinds of diagrams, drawing them in yEd is faster than on paper (the actual drawing is roughly as fast, changing my mind is an order of magnitude faster)
I would assume, however, that the intersection between yEd users and yFiles licensees is fairly small, though. It still remains a good showcase for what developers could do with the library (along with the 100+ demo applications that ship with it ).
Thank you to the creators of yEd - you've put together a wonderful product! If there is one feature I would like to see, it's the ability to bulk format elements and label fonts. From what I remember, that was just a tad monotonous.
As for your wish, I think that's already there. You can select many items at once and change them all in the same way, e.g. changing the label font. To select all elements of the same type, simply select one of them (e.g. a label (you may have to use Ctrl+click to select a label on top of a node)) and press Ctrl+A. That should select all labels, while not selecting anything else. From there you can change properties for all of them at once. I think we've added this to yEd Live (the online version) as well recently.
There is also a powerful selection dialog under Tools > Select elements where you can basically select everything that matches certain criteria, such as all nodes with the same color, or predecessors of the currently selected node. Afterwards you can change properties in the panel as usual. This one only exists in the desktop version, though.
I've been doing a lot of flow diagrams and PlantUML has been invaluable.
I specifically like it because sharing the flow means sharing some text, which itself is vaguely human-readable.
There's an online renderer (bottom of the page in the above link), which means simple diagrams are also quick to create and view.
It's got a few different modes that it understands but I'd definitely add it to the list when you need simple vector graphics.
Has an online split screen view with your text on one side, and the diagram in the other. It's quite crude - no auto refresh, for example - but it works.
My only complaint is that you can't manipulate layout directly. You can do some hacks like invisible directional arrows, but ultimately any change you make risks turning your beautiful diagram into complete spaghetti.
I wish there was a tool combining plaintext description with explicit layouting.
I use a combination of plant for sequence flows and lucid for arch diagrams.
I really like gravit.io as an online lightweight version of Illustrator. For me it has been especially good for online targeted diagrams, e.g., for blog posts & web pages.
For my shameless plug, I helped build a whiteboarding tool that is great for simple hand-drawn diagrams, and truly looks whiteboardy. https://limnu.com. We intentionally kept the tools simple so you can iterate and obsess over the idea rather than the look. That might not be what you mean by “beautiful diagrams”, but personally I find a good whiteboard diagram quite beautiful. Maybe it’s a functional beauty. We used Limnu to create all the diagrams for the online book “Ray Tracing in One Weekend.” http://www.realtimerendering.com/raytracing/Ray%20Tracing%20...
I also worked at LucidChart for a while, and I know first-hand it’s very powerful and quite good compared to almost everything online, especially for flowcharts and serveral pre-baked styles of data driven diagrams.
Recently I used plotdevice.io to build a 3d line renderer for a bunch of diagrams in a book. It’s a Mac environment that is similar to Processing, but is based on Python and has built-in PDF export.
I've been using vectors since Corel Draw 4 in the 90s and have tried pretty much everything. I still prefer Illustrator over Sketch, Affinity Designer, and all these new web based tools (Figma, etc).
Draw.io is free but requires you to do so much work yourself to create objects, size them, group them, connect them, arrange them.
Most other tools I've found when googling around require the same level of effort to use as Draw.io: AsciiFlow, Gliffy.
Omnigraffle is out of the picture since I need to be able to share and use graphs across Mac, Windows, and Linux users -- without needing to describe multiple tools and conversion between formats or anything.
The simplest tool I've seen that just works is Visio. It is primarily click-and-drag and has great suggested connecting, sizing, grouping, and arranging features. It has an online client that works in Chrome in Mac, Linux, Windows, and FreeBSD. On Windows there is also the fully-featured desktop client. It's also familiar/intuitive enough to old-school Office users and feels like a regular graphics application to those of us less Office-oriented.
I don't enjoy spending as much time as I have hunting for the ideal solution. But I'm happy to have found Visio.
Also you probably don't have control over this, but I tried to add Visio to my personal Office 365 subscription for personal use, but apparently you need a business subscription to get Visio? What's the point of that? I want to give Microsoft my money but they just won't take it.
In this situation, you often have several chemicals that can all be converted to something you want to highlight. When presenting such things in linear logical order for explanatory power you'd have all the precursors in a row and then have them all have nice arrows going to the product.
What I had the most trouble with was getting the arrows to combine nicely with curves. Consider something that makes it so that when multiple arrows go to a single connection point, it replaces the arrowheads with a single composite arrowhead. This deals with slight angle issues and color mismatches. Arrow labels were relatively straightforward to get adjusted right, but arrow bodies were not.
In this kind of diagram I also need to often pull a secondary arrow out of the main arrow to indicate a species that was removed, for instance ATP might come in and go out as ADP. This is very tricky to blend right visually, the arrows will be overlapping, they're defined to touch from the center of the secondary arrow to a point on the main arrow, etc. Consider a tool to launch additional arrows (casting both forward and backwards if desired) from evenly spaced control points on a main arrow?
Example of how bad it is when most people do it (this one is typical or above average). If Visio could to those right (don't worry about adding a chemical editor, those are just PNG or vector graphics from ChemDraw 100% of the time) it would make biology so much easier to present nicely.
(Or improve the feature-parity between the online and desktop versions, like the other commenter suggested.)
As this question shows, there are lots of free and low cost alternatives.
Visio (and Project) should be included in at least one Office bundle, ie Pro Plus.
Everybody in my class started with Visio, they almost all went to alternatives due to unreliability. Crashes with no autosave files happened way too often.
I'm not trying to save money, I'm trying to ensure a good experience for folks who need to use Visio on Mac/Linux/FreeBSD in addition to the Windows users.
Is there a way I can interface C# to it easily? Basically I'd like to add some intelligence to a standard Visio document to almost make it a schematic capture system. Even if that isn't possible, keep up the good work!
This is because I was using Visio where the final product needs to look aesthetically perfect, and the workflow would get you to 95%. But we all know how much manual tweaking it takes for that final 5% -- getting none of the text overlapping, making sure arrow dashes don't alias with each other, making sure colors can be distinguished, moving the logical structures around to get the overall shape and flow right, and so on. That stuff is pretty good, and I've only seen worse in other tools. But it's still excruciating.
Personally, it’s unusual in that it’s an acquired product that’s sort of an Office component and it has gotten worse with every release until very recently. Even Outlook, while awful, gets better.
Draw.io could be so much better but it is exhausting to create anything with it.
But it had to do with all of those items being very manual in Draw.io with little assistance. Whereas Visio auto-resized and offered connections and new elements very fluidly.
It seemed like it was taking me 20-30 minutes to do a simple diagram on Draw.io with good layout and sizing when it took me 5 minutes to do it in Visio.
1. LaTeX + TikZ - if my diagram is simple or lends itself well to the TikZ syntax, I can usually get it done quickly and have it look professional.
2. Graphviz - if I'm drawing anything that can be represented as a directed graph, Graphiviz is fantastic due to it's automatic positioning and layout.
3. ipe (http://ipe.otfried.org/) - for heavy lifting where neither of the above will cut it, ipe does a great job. It's basically xfig, but on steroids and with a modern UI. Here are some samples: https://github.com/otfried/ipe-wiki/wiki/Showcase
The downside is that LaTeX doesn't support many primitives that engineers are used to, such as arrays.
PlantUML for sequence diagrams, state machines and the likes.
Powerpoint/Keynote for things that are presentations - and usually I will export one of the above formats as SVG, clean it up a bit, turn into PDF and drop into the slides. As a general rule all my diagrams must be vector based, and no bitmap objects should be embedded.
Confluence with Graphviz and PlantUML plugins for placing diagrams into documentation. This also gives more granular version control. Other diagrams may also end up in source control with the product itself.
Occasionally I have ASCII art embedded in source code, nearly all of this is hand cranked as I've yet to find tools that work for me. Almost always this is formatted to show up in generated documentation.
But most importantly is having consistent design elements - spend time having colour palettes that are consistent, typefaces and type positioning that match, that shapes and layouts are as consistent as possible. Having templates, colour palettes, and snippets help. Finally, understand basic colour theory, typography and layout. Looking at graphic design visual porn (Behance is a good starting point) after knowing the basic rules will hopefully give meaningful inspiration.
It's free open-source software, works on Windows, Mac and Linux. It gives great balance for drawing on grids (reduces arbitrary decisions) and usability (power to draw what you want). I've gotten several compliments at talks for diagrams made using this software, so I highly recommend it.
Likewise I'm a bit leery that Dia is requesting access to "system events".
Even better, it has export to PGF/TiKZ : see https://gitlab.gnome.org/GNOME/dia/tree/master/plug-ins/pgf
This is a product that I've been working on for the last 2 years. You won't be able to create those animated diagrams (yet), but you can create pretty much anything else: Flowcharts, UML, BPMN, VENN, server architecture and other unique diagrams.
It also has a really simple UI that allows me to quickly map out my thoughts so I use it for a lot of things.
I felt sad to hear a few months ago that they are stopping its development .
That being said, the software —in its current version— works very well.
There’s an online editor too which is basically what I use most of the time.
There are some tweaks that would be really nice to make it more useful (designating two nodes to be on the same level, more control over node positioning, etc.), but I'm enjoying it so far.
It makes it super simple to create good-looking diagrams, and it can do a lot more than just diagrams too.
I wish Figma would integrate the snapping behavior of Whimsical – that, I think, would be the ultimate diagramming tool.
1) Use pen and paper and/or graphviz to find most pleasant/understandable layout. It's may be not that obvious.
2) Use vector graphics editor (Adobe Illustrator, Inkscape or CorelDRAW) to draw by hand.
I always thought there must be some special tool, way better than Draw.io, OmniGraffle and everything, but just vector graphics. Maybe quiet some work.
- TikZ good for nearly anything, the best results in any case, but a bit time-consuming. I use it only when I really need to draw impressive things (that happen really rarely);
- Dia (Gnome) works well for various / casual / simple stuff especially because of it's variety of icons/block libraries immediately available. I use it to made quick stuff that does not really need to be "visually impressive" and I do not have too much interest in them;
- Ditaa (with org-mode) is nice for simple/quick drawings for witch pure TiKz is overkill and Dia as an external tool is overkill due to the simplicity/regularity of the drawing itself;
- Matplotlib with Python or Hy can be a nice tool depending on what kind of diagram I have to produce;
- Last mentioned, more as a curiosity since I discover it recently and essentially tested only for play: https://github.com/cuichaox/dml
I built an R package to easily support nomnoml in R Markdown: https://github.com/javierluraschi/nomnoml
+ Describe your drawing in code
+ Mostly intuitive syntax
+ Not very steep learning curve
- No visual editing: edit-compile-view cycle
- Time consuming
If I need control over every pixel I write graphics programs in Python or Cython or C, or use GIMP.
I use the graphtheory package a lot: https://github.com/taoari/asy-graphtheory.
Edit: And of course you can draw free hand. It's vector based.
BTW, until recently OmniGraffle was the only commercial mac app I used in past 10 years. Now I got FL Studio as well.
It's a gif, but it becomes a static afterwards. I see no changes on the frontend whatsoever, no CSS property changes, no changes in image, etc. No canvas element etc. Refreshing the page, the gif stays static, but running it through a different browser replays gif animation.
I've never seen this done before, how does that work?
I found a tool online for changing number of loops, set the value to 1
It stops at the end of its animation here as well too,
I didn't see the answer on stackoverflow. https://stackoverflow.com/questions/5818003/stop-a-gif-anima...
If you want to see it animate again, do shift-ctrl-r or shift-reload.
For everything else that cannot be covered by these two I break out my pen and paper and click a picture.
Ends up looking like this: https://erdo.github.io/android-fore/03-reactive-uis.html#qui...
Easy to make minor changes, but probably not great for complex sequence diagrams of course (or collaborating on a diagram with someone else - but that's better done just on paper anyway IMHO).
It does not take a lot of practice to get decent results and they also have some nice networking/AWS icon templates. I think they still have a free account option with limited sheets.
I use balsamiq all the time - helps me make diagrams with a sketchy feeling. It is designed to be used for the mockups only but I find myself using it for everything. You might have seen it used in (pretty famous?!) developer roadmap https://github.com/kamranahmedse/developer-roadmap or in some of my blog posts https://medium.com/tech-tajawal/rabbitmq-at-tajawal-c4eeccdd...
It kind of feels like it's stood still though - they've had years to innovate, but haven't really. At the very least, I wish they'd add more shapes/components, because the library you get is severely lacking.
I'm sure there are other tools, but the output quality is great. It's expensive though. I've seen some online tools that replicate the functionality and they're awfully close but have even more quirky UI issues that get in the way of getting it done. I don't want to be spending more than an hour on a nice figure for a publication, and even Visio ends up taking me three times that.
Otherwise I just draw on a white board and take a photo
Then finally Visio if needed.
That said, my old standby is OmniGraffle. Makes it super easy to create any type of diagram on macOS.
eg. this Pure CSS Flowchart:
You can subscribe to a free account. The ‘signup free’ link is somewhat hidden under the pricing sections.
The product has many nice drawing tools and templates and you can export to raster or vector formats.
You can make something like the one in your link by combining some preset icons Cacoo offers with regular drawing tools.
*Disclaimer: I’m a Cacoo developer
I also work with Turing machines and other automata/complexity stuff. I use TikZ for those purposes. It also seems to be versatile.
$7.99 per month for a single user or $4.99 per user per month for small teams.
It was one of the first browser-based diagram tools but it's kept up with the competition. Gliffy provides a wide variety of diagram types, design and theming options.
I also have gotten to the point where I care more about speed / consistency / access than pretty. you can spend HOURS just tweaking color schemes on diagrams. If we're going to take the diagram to print in marketing material, sure spend that time. If I'm trying to get an idea across to others, nah, not worth it. To me it's a parallel to the go formatter argument.
Also auto-layout tools like plantuml mean I spend minutes on things insead of endlessly tweaking things.
However, I doubt anyone will make the claim that what it produces is beautiful.
It's as flexible as possible without sacrificing too much usability; you can create any sort of diagrams I can think of, from simple flowcharts to complex sequence diagrams or process illustrations.
The main caveat is it's a commercial tool. I have it available at work as most of my clients (to the point there's usually a preference for it).
That said, on many specific cases I use other tools, like plantUML for generating more in depth sequence diagrams, and I prefer to stick to simple PowerPoint figures if I'm doing something that is very abstract - mainly because of its broad adoption; Most people will have a PowerPoint compatible tool installed at their computer and thus readily able to collaborate with me.
You'll have to design and style the diagram yourself though. With a vector drawing app, there are no constraints on how the diagram could look - the appearance is entirely up to you.
Dedicated diagramming programs like Omnigraffle (Mac only) and Visio (Windows only) come with predefined diagramming shapes and the ability to connect shapes with lines. They save time and include options to customise the appearance of the diagram. However, the finished diagram may be a little less visually attractive if you rely on the default settings.
Disclosure: I work for the Visio team, so if you have any feedback pls lmk.
For those dismissing figma cause its a ui tool.. I'm a dev first but did a short course on ux/ui and got introduced to it. 15 min you tube tutorial was all was needed to get it and they have a Web app that works on all oses.
And the gif metadata says it was created using:
Adobe Photoshop CC 2014 (Macintosh)
So I guess that's how they did it. Personally I mostly use Gliffy for speed, but SVG is ideal and a bit of animation can go a long way.
It is open source and written in Python. We are just about finished porting it to modern Python. My goal is to make it a really fast, cross platform, and simple drawing and modeling tool, and it is already very usable.
I use it for the easy collaboration, but miss OmniGraffle every time I do.
It has some limited features and the UX could be better, but it is open source and works across Linux, OSX and Windows, so other people on the team can edit diagrams I have created.
For quick & dirty, always Google Slides/Drawings (same engine), since it's free, in the cloud, works anywhere, and collaborates with anyone.
It's not for making diagrams per se, but for developers who are making their own webapps which involve diagramming (so their users will).
(great software though, I have to admit)
As for the main topic, my favourite diagramming tool is GraphViz, mostly because it is easy to script / automate, does a great job auto-placing things, handles large diagrams quite nicely and works on any OS.
Monodraw, for simple diagrams that are text based.
Windows only but works really well in wine.
lottie? if you already know how to make svgs
1. PowerPoint for composition. Unless whatever graphic you're making is simple enough to be produced by just 1 program, it's good to have a canvas-like program that you can assemble the components in. For me, that's usually PowerPoint, since it can be pretty free-form. PowerPoint slides can be embedded into Word documents as active content.
2. Equations: Word's equation editor or TeX. Other Microsoft Office products like PowerPoint and Excel have an equation editor built into them too, but those equation editors tend to be inferior to Word's. I used to copy/paste Word-equations into PowerPoint. Mathematica's an option if you're using it anyway, though it can look kinda clunky.
3. Graphs (excluding labels): Excel or a ray-tracer. For simple graphs, you can usually do them in Excel -- just have to learn the customization options (which I think folks often overlook, getting discouraged by the non-customized versions). For more complex graphs, sometimes it's just easiest to write your own ray-tracing scene. Matlab can be decent for some 3D surface figures, once you edit out its labels and replace them with better ones.
4. Labels: Word's equation editor or TeX again. While graph-creating tools can often insert labels just fine, they tend to be a bit rudimentary. So, once you make a graph, put it into PowerPoint, then insert your own axis labels and other markup by copying them from equation-editor tools. If you want to add arrows, circle something, or anything like that, then you can use PowerPoint's shapes.
5. Simple flow diagrams: Microsoft Visio or PowerPoint, depending on the kind. PowerPoint's probably better for the simplest things, but Visio scales better for larger diagrams.
6. Engineering designs: Whatever CAD you made them in. For example, I used to put chemical process schematics together in AspenTech's Aspen Plus, then copy/paste them into PowerPoint for further markup.
7. Minor tweaking: Paint, Paint.NET, etc.. If you just want to tweak a graphic or something before pasting it into PowerPoint, simple image-editing tools can let you do that.
8. Security: Write your own script. If you have some graphic that might have hidden tracking information embedded in slight pixel alterations, then you can do stuff like:
a. round pixel RGB values to the nearest 5 (or whatever);
b. merge pixels together (like Paint would if you shrink an image);
c. save as JPEG or some other lossful format;
d. randomly (using a CRNG) mutate pixel values by slight amounts to inject invisible noise.
9. Complex diagrams: Ray-tracing. Honestly I love ray-tracing stuff; it feels like a brute-force solution to just about anything you could want to draw, and if you like programming, I think it's one of those projects that you really ought to do at some point just as a matter of being well-versed in computers.
Overall, my big tip would be to be aware of the various tools that can do parts of the overall job well, then compose them in a general canvas-like setting like PowerPoint, and then finalize any little tweaks using an image-editor.
But for the sake of example, say that you download an image to be later used in a document/presentation that'll be made publicly available. The image server might choose to encode information like retrieval time, IP address, account you're logged in with, and any other tracking info it might have through cookies in an invisible watermark. Then after you post the image as part of a document/presentation, the original source can make that connection.
Ideally anyone tracking you would make the tracking mark cryptographically secure such that only they can interpret it, though there's also the possibility that they'd use some other mechanism that could reveal your personal information to anyone aware of the watermarking mechanism.
Alternatively, say that the image is retrieved over an insecure line, e.g. through HTTP, and, say, some country (with loose notions of civil rights) wishes to track its propagation. Then they can intercept the original image, watermark it, and serve the malicious version to you. Which such a state might wish to do if you're, say, working on a technology that they're interested in.
I mean, a scatter plot's axes can be drawn as cylinders while the points can be spheres, etc., which makes it simple enough to throw together from most quick ray-tracing tutorial projects.
But what's really cool is that, once you put some objects together that form graphs and such, it's trivial to merge them with other scenes. Like, I was really interested in having a 3D walk-through of a chemical processing plant, where I could insert graphs linked to real-time data, where the graphs themselves are just part of the ray-traced scene (rather than being something like a skin on an object). So then the 3D walk-through basically has pop-up data views.
But for stuff like documents, I mostly just think of ray-tracing as the brute-force solution to anything that's not more easily done using another tool. I think the first time I used it for a plain graph, I was frustrated by trying to make a plot that had both surfaces and point-bubbles in it. So, I figured, hey, surfaces can just be interpolations of sample points, and the point-bubbles can just be little spheres.
Of course Adobe tools are the nicest concerning UI / workflow but also you'll pay for them until you die.
1. Dia: Its FOSS and gives TeX output also
2. LibreOffice Draw
Here's one example: http://xkcdgraphs.com/ (there are plenty of others if you search for them).