From mboxrd@z Thu Jan 1 00:00:00 1970 From: Erik Butz Subject: Re: org-babel python/shell or gantt charts with gnuplot from within org-mode Date: Wed, 14 Apr 2010 01:42:56 +0200 Message-ID: References: <871veji3sk.fsf@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: quoted-printable Return-path: Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1O1pl2-00012w-Aw for emacs-orgmode@gnu.org; Tue, 13 Apr 2010 19:43:04 -0400 Received: from [140.186.70.92] (port=49681 helo=eggs.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1O1pkz-00012R-1m for emacs-orgmode@gnu.org; Tue, 13 Apr 2010 19:43:03 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.69) (envelope-from ) id 1O1pkw-0006dh-Sv for emacs-orgmode@gnu.org; Tue, 13 Apr 2010 19:43:00 -0400 Received: from mail-bw0-f223.google.com ([209.85.218.223]:59121) by eggs.gnu.org with esmtp (Exim 4.69) (envelope-from ) id 1O1pkw-0006dZ-GZ for emacs-orgmode@gnu.org; Tue, 13 Apr 2010 19:42:58 -0400 Received: by bwz23 with SMTP id 23so4290679bwz.26 for ; Tue, 13 Apr 2010 16:42:57 -0700 (PDT) In-Reply-To: <871veji3sk.fsf@gmail.com> List-Id: "General discussions about Org-mode." List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org Errors-To: emacs-orgmode-bounces+geo-emacs-orgmode=m.gmane.org@gnu.org To: Eric Schulte Cc: emacs-orgmode@gnu.org Hi Eric, thanks for this information, this already brings me one step further. There is now another issue which I run into, trying to get this to work: python lists seem to be a potential problem. In the code there are several lists which are constructed by a # Generate gnuplot lines plot_lines =3D ['plot ' + ', \\\n\t'.join((' '.join(['-1', 'title "%s"' % t, 'with lines', 'linecolor %s %s ' % (colorprefix, colors[t]), 'linewidth 6']) for t in tasks))] which cause the program to fail and not to produce any output when accessed= . I can create lists with append('a') however and use them mostly w/o problem= s. Is there any know limitation somewhere in org-babel or am I running into some other problem here? (in principle this should just be run like in any normal shell, right?) Again any hints appreciated Erik P.S. let me stress that the code works w/o problems from a normal shell, since otherwise this sounds more like a python question On Tue, Apr 13, 2010 at 8:51 PM, Eric Schulte wrot= e: > Erik Butz writes: > >> Hi all, >> >> I have been playing around with org-mode and have been thinking about >> the possibility to create gantt charts with org-mode. I did not find >> anything in the archives, and todays thread about taskjuggler brought >> me back to the subject. >> >> This is a python script hovering around the web (gantt.py) which >> enables gant charts with gnuplot. I played around with this a bit so >> as to have it accept ISO timestamps (%Y-%m-%dT%H:%M:%S) and or >> durations. Now I am looking for a way to execute this from within >> org-mode probably using org-babel >> >> The (bash) syntax would be something like >> >> python gantt.py -t "Title" -i input.txt | gnuplot -persist >> >> I would like to pass an org table to the script instead of the input >> file so the equivalent of doing >> >> cat input | python gantt.py -t "Title" | gnuplot -persist >> >> The input structure is (e.g.) >> >> Task 1 =A0 =A0 =A0 =A02010-4-2T12:00:00 =A0 =A0 =A0 1 =A0 =A0 =A0 valida= te >> Task 2 =A0 =A0 =A0 =A02010-4-5T12:00:00 =A0 =A0 =A0 5.25 =A0 =A0 =A0some= thing >> Task 3 =A0 =A0 =A0 =A02010-4-5T12:00:00 =A0 =A0 =A0 2010-4-10T0:00:00 = =A0 =A0 =A0 otherthing >> Task 4 =A0 =A0 =A0 =A05.5 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 yet an= other thing >> which could well be the column mode representation of a file probably. >> > > something like the following in will allow you to pass a table to a > series of shell commands > > =A0#+tblname: tasks > =A0| Task 1 | 2010-4-2T12:00:00 | =A0 =A0 =A0 =A0 =A0 =A0 =A0 =A0 1 | val= idate =A0 | > =A0| Task 2 | 2010-4-5T12:00:00 | =A0 =A0 =A0 =A0 =A0 =A0 =A05.25 | somet= hing =A0| > =A0| Task 3 | 2010-4-5T12:00:00 | 2010-4-10T0:00:00 | otherthing | > > =A0#+begin_src sh :var tasks=3Dtasks > =A0 =A0echo "$tasks" |wc > =A0#+end_src > > =A0#+results: > =A0: 3 =A0 =A0 =A015 =A0 =A0 130 > > you can also use a gnuplot block to accept the output of gantt.py, and > once everything is working it can be packaged up into a library of babel > [1] function which could then be called with a short line like. > > #+call: gantt(tasks=3Dmy-task-table) > > Hope that helps, let me know if you have any more questions. -- Eric > >> >> I am sorry should this be a bit vague. >> >> Please let me know if I can provide any more information to clarify the = problem >> >> Cheers and thanks, >> >> Erik >> >> >> _______________________________________________ >> Emacs-orgmode mailing list >> Please use `Reply All' to send replies to the list. >> Emacs-orgmode@gnu.org >> http://lists.gnu.org/mailman/listinfo/emacs-orgmode > > Footnotes: > [1] =A0http://orgmode.org/worg/org-contrib/babel/library-of-babel.php > >