Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.graphics.apps.gnuplot > #4188
| From | Ethan Merritt <eamerritt@gmail.com> |
|---|---|
| Newsgroups | comp.graphics.apps.gnuplot |
| Subject | Re: Why does plotting with point labels make plot generation extremely slow? |
| Date | 2019-04-29 06:52 +0000 |
| Organization | A noiseless patient Spider |
| Message-ID | <qa66un$orh$1@dont-email.me> (permalink) |
| References | <0d17edd5-6246-4f25-8edd-df15a0832de8@googlegroups.com> |
On Sun, 28 Apr 2019 02:36:50 -0700, ciro.santilli wrote: > This made me curious, since I wouldn't intuitively expect that just adding point labels would add so much overhead. > > In particular if the point labels are hypertext, in which case they don't even show and no placement calculation needs to be done for them. Several reasons: 1) hypertext labels take fully as much setup and processing as non-hypertext labels. The label is written as normal but wrapped in an extra bit of code that sets a "visibility" attribute to "off". When you mouse over that point the program (actually the qt or wxt or browser support libraries) have to figure out which point that is and flip the corresponding attribute to "on", then redraw the plot. 2) font rendering is slow. Again this is not gnuplot itself. The font rendering is done by the display system (qt/wxt/x11/browser/whatever). When you say plot 'foo' using 1:2:3 it plots only points or lines, so no font rendering is required. As soon as you add "with labels" this changes drastically. 3) Actually a bit of the slow label handling may be gnuplot's fault if there are a _lot_ of labels, as in your 10^6 label case. Gnuplot maintains a singly linked list of labels and walks all the way to the end when adding a new one. For reasonable numbers of labels that doesn't matter, but the insertion overhead is O(2) so that must eventually hurt. If there were a legitimate use case for a million labels I'm sure that particular bit of overhead could be reduced to near zero. Do you have one? All that said, I get times of roughly 2.3 minutes for either wxt or qt to draw 10^5 labels. (I didn't try 10^6). Ethan > Generate test data with 1 million lines: > > i=0; while (( $i < 1000000 )); do echo "$i $i $i"; i=$((i + 1)); done > 1m.dat > > and here are all the tests that I've tried: > > #!/usr/bin/env gnuplot > > #set terminal png size 1024,1024 > #set output "gnuplot.png" > > set terminal canvas mousing > set output "gnuplot.html" > > #set terminal wxt size 1024,768 > > #plot "1m.dat" using 1:2 > plot "1m.dat" using 1:2:3 with labels hypertext > > With all terminal types, the command without "with labels hypertext" works and finishes quickly. > > But if I add "with labels hypertext" however, all commands take more than one hour, and I've lost patience to wait for them to finish. > > The same goes if I remove "hypertext". > > Tested in gnuplot 5.2 patchlevel 2, Ubuntu 18.10.
Back to comp.graphics.apps.gnuplot | Previous | Next — Previous in thread | Next in thread | Find similar
Why does plotting with point labels make plot generation extremely slow? ciro.santilli@gmail.com - 2019-04-28 02:36 -0700
Re: Why does plotting with point labels make plot generation extremely slow? Hans-Bernhard Bröker <HBBroeker@t-online.de> - 2019-04-28 19:11 +0200
Re: Why does plotting with point labels make plot generation extremely slow? Ethan Merritt <eamerritt@gmail.com> - 2019-04-29 06:52 +0000
Re: Why does plotting with point labels make plot generation extremely slow? ciro.santilli@gmail.com - 2019-04-29 01:01 -0700
Re: Why does plotting with point labels make plot generation extremely slow? Ethan Merritt <eamerritt@gmail.com> - 2019-04-30 01:49 +0000
Re: Why does plotting with point labels make plot generation extremely slow? ciro.santilli@gmail.com - 2019-04-30 01:17 -0700
Re: Why does plotting with point labels make plot generation extremely slow? Ethan Merritt <sfeam@users.sf.net> - 2019-04-30 19:06 +0000
Re: Why does plotting with point labels make plot generation extremely slow? ciro.santilli@gmail.com - 2019-04-30 14:26 -0700
csiph-web