Super User is a question and answer site for computer enthusiasts and power users. Join them; it only takes a minute:

Sign up
Here's how it works:
  1. Anybody can ask a question
  2. Anybody can answer
  3. The best answers are voted up and rise to the top

I want to create a diagram which will show a timeline, and at certain points of the timeline I want to annotate with text and/or a diagram.

Cue ASCII art...

                Event in March
2008         /                                                    2009

I'd like something like this (a bit nicer though ;-D), where I can declare the start and end times. I would prefer to work in declarations of time periods/events rather than drawing them myself. The diagram is going to be included in a LaTeX report, so that kind of style is what I'm after, a package for LaTeX that does this would be ideal. However, I would like suggestions for tools that make it easy to draw this kind of thing manually too.

Is there a program I can use on Linux that fits the bill?

EDIT: I don't know what the community thinks about duplicates across superuser/StackOverflow sites (this unsearched for answer already existed on StackOverflow), but I don't have the rep to close my own question...

share|improve this question

closed as off-topic by fixer1234, Kevin Panko, mdpc, Nifle, Raystafarian Apr 26 '15 at 11:36

This question appears to be off-topic. The users who voted to close gave this specific reason:

  • "Questions seeking product, service, or learning material recommendations are off-topic because they become outdated quickly and attract opinion-based answers. Instead, describe your situation and the specific problem you're trying to solve. Share your research. Here are a few suggestions on how to properly ask this type of question." – fixer1234, Kevin Panko, mdpc, Nifle, Raystafarian
If this question can be reworded to fit the rules in the help center, please edit the question.

10 Answers 10

If you want to save yourself all the programming work there is a website called that you can use create timelines with.

Or if you like to program and know a little XML and Javascript there is the SIMILE project from MIT has a neat Javascript browser based project called Timeline that allows you to use a simple XML format as input for displaying a timeline.

You said that you would "prefer to work in declarations of time periods/events rather than drawing them myself", and SIMILE Timeline seems like a good way to do that.

(You don't even have to draw it, just enter the data).

Both of these work on Linux/Windows/Mac whatever you want.

share|improve this answer
+1 for suggesting the MIT Timeline project -- that seems very useful! – wjl Sep 4 '11 at 20:53
Woah the SIMILE Timeline seems rather dead and the documentation really needs work since about 2010. Not sure whether I want to suffer. – David Tonhofer Nov 1 '14 at 18:00
I will try (written in Python, GPLv3) as there is no requirement to make the timeline visible in a browser. – David Tonhofer Nov 1 '14 at 18:10

The free GanttProject (Java) can make some nice looking timelines.

alt text

share|improve this answer
A Gantt chart is not a timeline. – systemovich Nov 16 '11 at 20:08
close enough for many uses – Matthew Lock Nov 22 '11 at 9:20

Dia is a program to create diagrams on Linux, it's similar in practice to Visio.

Dia is roughly inspired by the commercial Windows program 'Visio,' though more geared towards informal diagrams for casual use. It can be used to draw many different kinds of diagrams. It currently has special objects to help draw entity relationship diagrams, UML diagrams, flowcharts, network diagrams, and many other diagrams. It is also possible to add support for new shapes by writing simple XML files, using a subset of SVG to draw the shape.

enter image description here

share|improve this answer

Than newer versions of Gnuplot are capable of handling timeline scales and can create annotations as well. It is originally a scientific plotting program, and can generate output in many formats including .png and .eps, so you can embed the results easily in LaTeX (it has a dedicated LaTeX output, which I am not familiar with). It has a quiet good and thorough documentation, plenty of settings and you can execute scripts in batch mode. You can even create a gnuplot script with a sheabang (#!) syntax.

share|improve this answer

Does this timetable example in PGF/TikZ look the way you like? PGF/TikZ is a LaTeX library so you can roll your own if you are proficient in LaTeX - see e.g. this post for the beginnings of a Gantt chart module.

share|improve this answer
Not quite, I'd like a horizontal axis to represent time; I couldn't tell if the packages list would allow that. – Grundlefleck Aug 24 '09 at 19:24

In LaTeX you could try the tikz-package. Here is some example-code:

	\caption{some caption}
		\draw (0cm, 0cm) -- (15cm, 0cm);
		\foreach \x in {1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15} \draw (\x cm, 3pt) -- (\x cm, - 3pt);
		\draw (0cm - 3pt, 0cm + 3pt) -- (0cm, 0cm) -- (0cm + 3pt, 0cm + 3pt);
		\draw (0cm, 0cm) node[above=5pt] {0};
		\draw (5cm, 0cm) node[above=5pt] {100};
		\draw (10cm, 0cm) node[above=5pt] {200};
		\draw (15cm, 0cm) node[above=5pt] {300};
		\fill (12cm, 0cm) circle (2pt);\draw (12cm, 0cm) node[above=5pt] {some text};

That creates a nice horizontal timeline.

share|improve this answer

Have you tried either of the existing LaTeX packages designed precisely for this, viz., timeline or chronology?

share|improve this answer
Chronology looks good – Matthew Lock Mar 3 '14 at 0:08

OpenOffice can do a decent timeline. Create a table 8 rows high and the number of items you have plus 3 columns wide - so if you had 17 items to put in your timeline, you would make a table 8 rows high and 20 columns wide. Set all cell borders to none. Merge the top two and top bottom two rows of cells, four at a time. Merge the two middle rows two cells at a time. You can use the cell borders drawing button to draw lines to individual cells. This is all much easier as a picture rather than trying to explain:

alt text

Your dates or times go in the two-cell boxes in the middle, anything you like goes in the four-cell boxes above and below. I know it's not LaTeX, although I'm sure you can get LaTeX to layout a table in a similar fashion. You could, of course, export the diagram as an image from OpenOffice to include in your LaTeX document.

share|improve this answer
jpg makes baby jesus cry :( – LiraNuna Aug 28 '09 at 8:05
"although I'm sure you can get LaTeX to layout a table in a similar fashion" - seriously. – sehe Jun 1 '12 at 14:24

I once wrote a gnuplot script to plot FM radio station frequencies along an axis from 87MHz to 108MHz, using the names of each radio station as vertical labels. Your ascii drawing looks very similar to my result. You can have a look at the script.

share|improve this answer

You could use Creately or Creately Desktop to help you draw Gantt Charts or timelines.

Lot less time fiddling around as the timeline and due dates can be just put in and the unit of time can be configured. Then just draw the bars or lines.

Can export as vector to be put into LaTex I suppose.

Creately Timeline Diagram

share|improve this answer

Not the answer you're looking for? Browse other questions tagged .