ntg-context - mailing list for ConTeXt users
 help / color / mirror / Atom feed
From: Florian Wobbe <Florian.Wobbe@awi.de>
To: mailing list for ConTeXt users <ntg-context@ntg.nl>
Cc: Peter Hedwig <peter@affenbande.org>, eamerritt@gmail.com
Subject: Re: Gnuplot module: Patching of Gnuplot binary still needed?
Date: Mon, 22 Nov 2010 20:15:26 +0100	[thread overview]
Message-ID: <EC8DA374-4155-4189-809A-4803064250DA@awi.de> (raw)
In-Reply-To: <AANLkTikumYPQgUtLh+C9o3fBiHHHRVkDwWzzAzyLg-+D@mail.gmail.com>

On Nov 22, 2010, at 16:01 , Mojca Miklavec wrote:

> [...]
> 
>> 2) Negative axis labels are set with hyphen instead of proper minus sign, which should be longer (see example above).
> 
> I'm not sure if this should really be fixed automatically or not. In
> order to fix this one would have to patch gnuplot core.
> 
> I forgot the details how to do it (I can find it out), but you can
> configure the layout of labels. In particular you may enclose the
> number into math delimiters ($). Maybe something like
>    set format y "$%.1f$"
> would work (you might want to change the size of left margin then).

Hej Mojca, thank you for your answer! Well, that was surprisingly easy - I should have checked the manual first (I was just about to write an ugly hack into your context terminal driver :). Actually
 set format "$%g$"
gives the default label format (only enclosed in $) for all axes.

> Doing any other kind of magic would be a bit dangerous. Keep in mind
> that
>    plot 'x.dat' u 1:(2*$2)
> will also fail since TeX will interpret $ as math delimiter. But
> changing that behaviour would have other undesirable effects.
> 
>> 3) First I thought luatex hangs but then I noticed TikZ is awfully slow when drawing plots with large amounts of data points (the tikzpicture had about 3000 lines). I can speed this up by reducing the size by invoking plot with:
>> 
>>  plot "< gawk '(NR-1)%10 == 0 {print $0}' fileWithLotsOfData" using [...]
>> 
>> I wonder if there is a smarter way to do this in gnuplot.
> 
> [...]
> What I did for my "theory of chaos" reports and the million-of-points
> plots in my thesis was to create an empty plot with ConTeXt terminal,
> create a borderless plot with PNG and then manually insert PNG into
> the generated ConTeXt output, which you could do with TikZ output as
> well. It requires more effort, but there is no other way to speed up
> vector graphics. They are simply not suitable for drawing millions of
> points on the same plot.

I'd probably do the same in that case. But unlike you I have a lot less points - 5000 points instead of millions. Loot at this example, which is the slightly modified random demo script taken from the gnuplot page:

 set terminal context size 15.0cm,10.5cm standalone
 set output 'randomCtx.tex'

 set dummy t,y
 unset key
 set parametric
 set samples 5000, 5000
 set style function dots
 set title "Lattice test for random numbers" 
 set xlabel "rand(n) ->" 
 set xrange [ 0.00000 : 1.00000 ] noreverse nowriteback
 set ylabel "rand(n + 1) ->" 
 set yrange [ 0.00000 : 1.00000 ] noreverse nowriteback
 set zlabel "rand(n + 2) ->" 
 set zrange [ 0.00000 : 1.00000 ] noreverse nowriteback
 plot rand(0), rand(0)

 set terminal lua tikz context size 15.0cm,10.5cm fulldoc
 set output 'randomLua.tex'

 replot

Now look at the timing of processing the output files with context (final run only):

context randomCtx.tex -> 3.150 seconds.
context randomLua.tex -> 23.658 seconds.

Further increasing the number of points to 15000 results in 8.978 vs. 62.878 seconds. Quite a big difference in processing time!

> (Gnuplot also has a keyword 'every' to reduce the number of points,
> but in my case I wanted to plot all of them.)

True, but suppose you don't have evenly spaced data points. Then you don't want every other line but one point every 5 kilometres or something the like.

Especially for line drawings it would be beneficial not to place every single point. Instead consecutive points should be skipped if they are close to each other (with regard to plot units) - it makes no sense to include points which you won't see anyway. This could be done by defining a grid with a certain (user defined) resolution and rounding the coordinates (plot units) of a line point to the nearest grid node. All consecutive line points falling on the same grid node should not be passed on to terminal drivers. The psxy utility of GMT (http://gmt.soest.hawaii.edu/) does this for instance. I am not aware of such a functionality within gnuplot but it would be a nice feature.

Best wishes,
Florian

___________________________________________________________________________________
If your question is of interest to others as well, please add an entry to the Wiki!

maillist : ntg-context@ntg.nl / http://www.ntg.nl/mailman/listinfo/ntg-context
webpage  : http://www.pragma-ade.nl / http://tex.aanhet.net
archive  : http://foundry.supelec.fr/projects/contextrev/
wiki     : http://contextgarden.net
___________________________________________________________________________________


  parent reply	other threads:[~2010-11-22 19:15 UTC|newest]

Thread overview: 20+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-14 22:04 Paul Menzel
2010-11-15 11:29 ` Mojca Miklavec
     [not found]   ` <201011152131.18476.peter@affenbande.org>
2010-11-17 10:47     ` Mojca Miklavec
2010-11-18 23:38       ` Florian Wobbe
2010-11-22 15:01         ` Mojca Miklavec
2010-11-22 18:12           ` Ethan Merritt
2010-11-22 19:15           ` Florian Wobbe [this message]
2010-11-22 21:03             ` Mojca Miklavec
2010-11-22 21:19               ` Aditya Mahajan
2010-11-22 21:26                 ` Mojca Miklavec
2010-11-22 22:20                 ` Alan BRASLAU
2010-11-22 21:44               ` Florian Wobbe
2010-11-22 22:10                 ` Mojca Miklavec
2010-11-18  6:11   ` Jonas Stein
2011-01-09 21:50     ` jeroen.muskee
2011-01-09 18:54       ` Mojca Miklavec
2011-01-09 19:01         ` Aditya Mahajan
2011-01-09 23:20         ` Mojca Miklavec
2011-01-11  3:26           ` jeroen.muskee
2010-11-18 18:28   ` Paul Menzel

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=EC8DA374-4155-4189-809A-4803064250DA@awi.de \
    --to=florian.wobbe@awi.de \
    --cc=eamerritt@gmail.com \
    --cc=ntg-context@ntg.nl \
    --cc=peter@affenbande.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).