forked from gnuplot/gnuplot-old
-
Notifications
You must be signed in to change notification settings - Fork 0
/
FAQ
1076 lines (802 loc) · 43.3 KB
/
FAQ
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
[next] [up] [previous]
Gnuplot FAQ
Contents
* Contents
* Meta - Questions
o 0.1 Where do I get this document?
o 0.2 Where do I send comments about this document?
* 1. General Information
o 1.1 What is gnuplot?
o 1.2 How did it come about and why is it called gnuplot?
o 1.3 Does gnuplot have anything to do with the FSF and the GNU
project?
o 1.4 What does gnuplot offer?
o 1.5 Is gnuplot suitable for batch processing?
o 1.6 Can I run gnuplot on my computer?
o 1.7 Legalize it!
o 1.8 Is gnuplot Y2K compliant?
o 1.9 Where do I get further information?
* 2. Setting it up
o 2.1 What is the current version of gnuplot?
o 2.2 Where can I get gnuplot?
o 2.3 How do I get gnuplot to compile on my system?
o 2.4 What documentation is there, and how do I get it?
* 3. Working with it.
o 3.1 How do I get help?
o 3.2 How do I print out my graphs?
o 3.3 How do I include my graphs in <word processor>?
o 3.4 How do I post-process a gnuplot graph?
o 3.5 How do I change symbol size, line thickness and the like?
o 3.6 How do I generate plots in the GIF format?
o 3.7 Can I animate my graphs?
o 3.8 How do I plot implicit defined graphs?
* 4. Wanted features
o 4.1 What's new in gnuplot 3.7?
o 4.2 Does gnuplot have hidden line removal?
o 4.3 Does gnuplot support bar-charts/histograms/boxes?
o 4.4 Does gnuplot support pie charts?
o 4.5 Does gnuplot quarterly time charts?
o 4.6 Does gnuplot support multiple y-axes on a single plot?
o 4.7 Can I put multiple pages on one page?
o 4.8 Can I put both data files and commands into a single file?
o 4.9 Can I put Greek letters and super/subscripts into my labels?
o 4.10 Can I do 1:1 scaling of axes?
o 4.11 Can I put tic marks for x and y axes into 3d plots?
o 4.12 Does gnuplot support a driver for <graphics format>?
o 4.13 Can I put different text sizes into my plots?
o 4.14 How do I modify gnuplot, and apply 'patches'?
o 4.15 How do I skip data points?
o 4.16 How do I plot every nth point?
o 4.17 How do I plot a vertical line?
* 5. Miscellaneous
o 5.1 I've found a bug, what do I do?
o 5.2 Can I use gnuplot routines for my own programs?
o 5.3 What extensions have people made to gnuplot? Where can I get
them?
o 5.4 Can I do heavy-duty data processing with gnuplot?
o 5.5 I have ported gnuplotto another system, or patched it. What do
I do?
o 5.6 I want to help in developing the next version of gnuplot. What
can I do?
* 6. Making life easier
o 6.1 How do I plot two functions in non-overlapping regions?
o 6.2 How do I run my data through a filter before plotting?
o 6.3 How do I make it easier to use gnuplot with LATEX?
o 6.4 How do I save and restore my settings?
o 6.5 How do I plot lines (not grids) using splot?
o 6.6 How do I plot a function f(x,y) which is bounded by other
functions in the x-y plain?
o 6.7 How do I get rid of <feature> in a plot>?
o 6.8 How do I call gnuplot from my own programs?
o 6.9 What if I need h-bar (Planck's constant)?
* 7. Known Problems
o 7.1 Gnuplot is not plotting any points under X11! How come?
o 7.2 My isoline data generated by a Fortran program is not handled
correctly. What can I do?
o 7.3 Why does gnuplot ignore my very small numbers?
o 7.4 Gnuplot is plotting nothing when run via gnuplot <filename>!
What can I do?
o 7.5 My formulas are giving me nonsense results! What's going on?
o 7.6 Set output 'filename' isn't outputting everything it should!
o 7.7 When using the LATEX-terminal, there is an error during the
LATEX-run!
o 7.8 The exit command does not work as documented!
o 7.9 I can't find the demos and example files at the URLs in the
documentation!
o 7.10 Calling gnuplot in a pipe or with a gnuplot-script doesn't
produce aplot!
* 8. Credits
Meta - Questions
0.1 Where do I get this document?
This document is posted about once every two weeks to the newsgroups
comp.graphics.apps.gnuplot . Its newest (plaintext) version is available via
anonymous ftp from ftp.ucc.ie in /pub/gnuplot/faq/gnuplot-faq.txt .
If you have access to the WWW, you can get the newest version of this
document from ~http://www.ucc.ie/gnuplot/gnuplot-faq.html .
Today's version is version Revision: 1.6, dated Date: 99/11/27 15:19:52
0.2 Where do I send comments about this document?
Send comments, suggestions etc via email to the developer newsgroup
info-gnuplot-beta@Dartmouth.EDU and additionally to j.vonhagen@web.de .
1. General Information
1.1 What is gnuplot?
gnuplot is a command-driven interactive function plotting program. It can be
used to plot functions and data points in both two- and three-dimensional
plots in many different formats, and will accommodate many of the needs of
today's scientists for graphic data representation. gnuplot is copyrighted,
but freely distributable; you don't have to pay for it.
This document deals with gnuplot Version 3.7 which is the latest official
release as of November 27, 1999. References to bug-fix versions or (recent)
beta versions are explicitly marked.
1.2 How did it come about and why is it called gnuplot?
The authors of gnuplot are: Thomas Williams, Colin Kelley, Russell Lang,
Dave Kotz, John Campbell, Gershon Elber, Alexander Woo and many others.
The following quote comes from Thomas Williams:
I was taking a differential equation class and Colin was taking
Electromagnetics, we both thought it'd be helpful to visualize the
mathematics behind them. We were both working as sys admin for an
EE VLSI lab, so we had the graphics terminals and the time to do
some coding. The posting was better received than we expected, and
prompted us to add some, albeit lame, support for file data.
Any reference to GNUplot is incorrect. The real name of the
program is "gnuplot". You see people use "gnuplot" quite a bit
because many of us have an aversion to starting a sentence with a
lower case letter, even in the case of proper nouns and titles.
gnuplot is not related to the GNU project or the FSF in any but
the most peripheral sense. Our software was designed completely
independently and the name "gnuplot" was actually a compromise. I
wanted to call it "llamaplot" and Colin wanted to call it "nplot."
We agreed that "newplot" was acceptable but, we then discovered
that there was an absolutely ghastly pascal program of that name
that the Computer Science Dept. occasionally used. I decided that
"gnuplot" would make a nice pun and after a fashion Colin agreed.
1.3 Does gnuplot have anything to do with the FSF and the GNU project?
Gnuplot is neither written nor maintained by the FSF. It is not covered by
the General Public License, either. It used to be distributed by the FSF,
however, due to licensing issues it is no longer.
Gnuplot is freeware in the sense that you don't have to pay for it. However
it is not freeware in the sense that you would be allowed to distribute a
modified version of your gnuplot freely. Please read and accept the
Copyright file in your distribution.
1.4 What does gnuplot offer?
* Plotting of two-dimensional functions and data points in many different
styles (points, lines, error bars)
* computations in integer, float and complex arithmetic
* plotting of three-dimensional data points and surfaces in many
different styles (contour plot, mesh).
* support for complex arithmetic
* self - defined functions
* support for a large number of operating systems, graphics file formats
and devices
* extensive on-line help
* labels for title, axes, data points
* command line editing and history on most platforms
1.5 Is gnuplot suitable for batch processing?
Yes. You can read in files from the command line, or you can redirect your
standard input to read from a file. Both data and command files can be
generated automatically, from data acquisition programs or whatever else you
use.
1.6 Can I run gnuplot on my computer?
Gnuplot is available for a number of platforms. These are: Unix (X11 and
NeXTSTEP), VAX/VMS, OS/2, MS-DOS, Amiga, MS-Windows, OS-9/68k, Atari ST,
BeOS, and the Macintosh.
Please notify the FAQ-maintainer of any further ports you might be aware of.
You should be able to compile the gnuplot source more or less out of the box
on any reasonable standard (ANSI/ISO C, POSIX) environment.
1.7 Legalize it!
Gnuplot is freeware authored by a collection of volunteers, who cannot make
any legal statement about the compliance or non-compliance of gnuplot or its
uses. There is also no warranty whatsoever. Use at your own risk.
Citing from the README of a mathematical subroutine package by R. Freund:
For all intent and purpose, any description of what the codes are
doing should be construed as being a note of what we thought the
codes did on our machine on a particular Tuesday of last year. If
you're really lucky, they might do the same for you someday. Then
again, do you really feel *that* lucky?
1.8 Is gnuplot Y2K compliant?
Gnuplot's compliance depends in part on the compliance of the underlying
operating system and hardware. The only use gnuplot makes of a system-
supplied date is in the "set timestamp" command, which simply echos the date
on the plot. If the underlying OS cannot produce an accurate time string,
then the "set timestamp" command may fail to print the correct date on
plots.
In gnuplot 3.5, if the user chooses to use %y in a timestamp format, rather
than %Y, it will print 2-digit rather than 4-digit years. The effects depend
on the importance you place on the timestamps printed on plots.
Gnuplot3.7 also allows the use of time/date data as variables, but the user
has complete control over the input format of the data and the output format
of the tic labels - the same 2-digit "%y" (interpreted as 1900+) and 4-digit
"%Y" formats are both available. But again, these are user-specifiable, so
if there is a Y2K problem here, it is the responsibility of the user.
Of course, gnuplot is built by executing a makefile, which may well be
date-dependent. So if the operating system has a Y2K problem, the process of
building a new executable of gnuplot may be affected. But that wouldn't be a
problem with gnuplot per se.
IMPORTANT NOTICE
As of gnuplot beta version 3.7.0.9, the interpretation of the "%y" two digit
year specifier was changed in accordance with the recommendations of The
Open Group and all major Unix vendors. When a century is not otherwise
specified, values in the range 69-99 refer to the twentieth century and
values in the range 00-68 refer to the twenty-first century. Be very careful
when interpreting 2-digit year expressions.
1.9 Where do I get further information?
The following sites have more information about gnuplot.
* ~http://www.comnets.rwth-aachen.de/doc/gnu/gnuplot37/gnuplot.html an
online documentation in html-format
* ~http://www.usf.uni-osnabrueck.de/ breiter/tools/gnuplot/index.en.html
has many links to many features and add-ons for gnuplot
* ~http://web.math-cs.uni.edu/cs/Help/gnuplot/TOC.html contains an online
tutorial
* ~http://brian.me.tufts.edu/GnuplotInLaTeX/ contrains infos abount
gnuplot and LATEX
* ~http://www.eso.org/ ndevilla/gnuplot/ explains the use of a gnuplot
API in ANSI C (commonly known as gnuplot_(pipes)
* ~http://ricardo.ecn.wfu.edu/ cottrell/qplot/ on how to plot quarterly
time data
* ~http://monsoon.harvard.edu/ mhagger/download a Python interface for
gnuplot
* ftp.thewrittenword.com in /free/by-package/ contains Solaris, IRIX,
HP-UX and Digital Unix binaries
* ~http://www.sci.muni.cz/ mikulik/gnuplot.html has Petr's famous OS/2
mouse support and the pm3d terminal for colour 3d surfaces. Furthermore
some more links to other sites
Some documentation is available in other languages than English. Those
include:
* ~http://www.multimania.com/ gersoo/gnuplt/index.html contient des
informations dans la langue de Molière: les 1ers pas avec gnuplot,
malheureusement seulement version 3.5. Vous trouverez un cours
directement en ligne appelleé "1ers pas avec gnuplot". Le cours est
aussi disponible en Postscript.
* ~http://www.al.lu/euler/gnuplot.shtml encore des informations en langue
française avec possibilité de téléchargement des versions binaires
Here are some more sites, however these are somewhat outdated in carrying
still references to beta versions. If you download software from there you
should be aware that beta versions are not officially endorsed.
* ~http://www.cs.dartmouth.edu/gnuplot_info.html slightly outdated site
for the 3.6 beta version, but also a web-gateway to the users'
newsgroup
* ~http://members.theglobe.com/gnuplot/ basically same as above.
* ~http://users.ece.gatech.edu/ schooley/gnuplot.html contains a
Macintosh version based on 3.6 beta 322
The following sites were said to exist, howevere they seem to be down right
now.
* ~http://www.geocities.com/SiliconValley/Foothills/6647/ the copyright
statement and some binaries contains ads
* ~http://www.delorie.com/gnu/docs/gnuplot/gplot_toc.html doesn't work
* picard.tamu.edu in /pub/gnuplot gives a tutorial
* ~http://feff.phys.washington.edu/ ravel/gnuplot has a new mode for the
users of (X)Emacs
2. Setting it up
2.1 What is the current version of gnuplot?
The current version of gnuplot is 3.7, which has many improvements over 3.5.
3.6 was never released to avoid confusions with the beta versions.
2.2 Where can I get gnuplot?
The source distribution ("gnuplot-3.7.tar.gz" or a similar name) is
available from the official distribution site and its mirrors.
The main server is ftp.ucc.ie in /pub/gnuplot/ . This server is mirrored by
several others, among those are
* mirror.aarnet.edu.au in /pub/gnuplot/
* ftp.dartmouth.edu in /pub/gnuplot/
* ftp.irisa.fr in /pub/gnuplot/
* ftp.gnuplot.vt.edu in /pub/gnuplot/
You can also have a look at the following WWW-pages which provide a source
to obtain gnuplot:
* ~http://members.theglobe.com/gnuplot/
* ~http://www.geocities.com/SiliconValley/Foothills/6647/
* ~http://mirror.aarnet.edu.au/pub/gnuplot/
The current version for the Macintosh is 2.04b, based on gnuplot 3.5
pre3.6beta338, and is available from
* ~http://users.ece.gatech.edu/ schooley/ .
Unfortunately, this version does not seem to be maintained anymore.
Source and binary distributions for the Amiga are available on Aminet
ftp.wustl.edu in aminet/ and its mirrors, for example ftp.uni-kl.de,
oes.orst.edu or ftp.luth.se.
MS-DOS and MS-Windows binaries are available from the above servers and are
called gp37dos.zip, gp37dj.zip, gp37w16.zip, gp37mgw.zip, gnuplot3.7cyg.zip.
OS/2 binaries are called gp37os2.zip.
An X11 Window System front-end is available at
~http://www.flash.net/ dmishee/xgfe/xgfe.html .
The NeXTSTEP front end can be found at next-ftp.peak.org in
/pub/next/binaries/plotting/Gnuplot1.2_bin.tar.Z .
A version for OS-9/68K can be found at cabrales.cs.wisc.edu in
/pub/OSK/GRAPHICS/gnuplot32x.tar.Z ; it includes both an X-Window Systems
and a non - X-Window Systems version.
Versions for the Atari ST and TT, which include some GEM windowing support,
are available from ftp.uni-kl.de in /pub/atari/graphics/ , as gplt35st.zip
and gplt35tt.zip. They work best under MiNT.
Executable files, plus documentation in Japanese, exist for the X680x0 on
ftp.csis.oita-u.ac.jp in /pub/x68k/fj.binaries.x68000/vol2 .
It is a good idea to look for a nearby ftp site when downloading things. You
can use archie for this. See if an archie client is installed at your system
(by simply typing archie at the command prompt), or send mail to
archie@sura.net with the word 'help' in both the subject line and the body
of the mail. However, be aware that the version you find at a near ftp site
may well be out of date; check the last modification date and the number of
bytes against the newest release at one of the official servers.
If you can't locate a working archie server, you can use other web-based
search engines for searching for gnuplot. One of these would be Lycos at
~http://ftpsearch.lycos.com/ .
As of June 1999, the gnuplot distribution is also mirrored at the
Comprehensive TeX Archive Network (CTAN) in the graphics/gnuplot directory.
See
* ~http://www.ctan.org/ .
Bug fixes can also be found at gnuplot distribution sites in the patches
directory.
2.3 How do I get gnuplot to compile on my system?
As you would any other installation. Read the files README.1ST and README.
For Unix, use configure and make. For DOS, if you are using bash and DJGPP,
you can just run djconfig.sh. For other platforms, copy the relevant
makefile from config/ to src, change to src and run make.
2.4 What documentation is there, and how do I get it?
The documentation is included in the source distribution. Look at the docs
subdirectory, where you'll find
* a Unix man page, which says how to start gnuplot
* a help file, which also can be printed as a manual
* a tutorial on using gnuplot with LATEX
* a quick reference summary sheet for TEXonly
PostScript copies of the documentation can be ftp'd from ftp.dartmouth.edu
in /pub/gnuplot , as manual.ps.Z and tutorial.ps.Z
The documentation is built during the installation if you have LATEX
installed on your system, look in the directories docs and tutorial.
Documentation about gnuplot is available in the most common formats at the
gnuplot distribution sites in the files gpdoc.zip and gpdoc2.zip.
3. Working with it.
3.1 How do I get help?
Read this document.
Give the 'help' command at the initial prompt. After that, keep looking
through the keywords. Good starting points are 'plot' and 'set'.
Read the manual, if you have it.
Look through the demo subdirectory; it should give you some ideas.
Ask your colleagues, the system administrator or the person who set up
gnuplot.
If all these fail, please upgrade to the newest version of gnuplot or urge
your system-administrator to do so. Then post a question to
comp.graphics.apps.gnuplot or send mail to the gatewayed mailing list
info-gnuplot@dartmouth.edu . Do not forget to cite the version number and
the operating system. If you want to subscribe to the mailing list, send a
mail to majordomo@dartmouth.edu with the body of the message being
'subscribe info-gnuplot'. Please don't do this if you can get
comp.graphics.apps.gnuplot directly. If you post a question there, it is
considered good form to solicit e-mail replies and post a summary.
3.2 How do I print out my graphs?
The kind of output produced is determined by the 'set terminal' command; for
example, 'set terminal postscript' will produce the graph in PostScript
format. Output can be redirected using the 'set output' command.
As an example, the following prints out a graph of sin(x) on a Unix machine
running the X-Window System.
gnuplot> plot [-6:6] sin(x)
gnuplot> set terminal postscript
Terminal type set to 'postscript'
Options are 'landscape monochrome "Courier" 14'
gnuplot> set output "sin.ps"
gnuplot> replot
gnuplot> set output # set output back to default
gnuplot> set terminal x11 # ditto for terminal type
gnuplot> ! lp -ops sin.ps # print PS File (site dependent)
request id is lprint-3433 (standard input)
lp: printed file sin.ps on fg20.rz.uni-karlsruhe.de (5068 Byte)
!
gnuplot>
In Microschrott Windows you click in the upper left corner of the graph
window and print directly from there.
3.3 How do I include my graphs in <word processor>?
Basically, you save your plot to a file in a format your word processor can
understand (using "set term" and "set output", see above), and then you read
in the plot from your word processor. Vector formats should be prefered, as
you can scale your graph later to the right size.
Details depend on the kind of word processor you use; use "set term" to get
a list of available file formats.
Many word processors can use Encapsulated PostScript for graphs. This can be
generated by the "set terminal postscript eps" command. Most MS-DOS word
processors understand HPGL (terminal type hpgl).
With TeX, it depends on what you use to print your dvi files. If you use
dvips or dvi2ps, you can use Encapsulated PostScript. For emTeX (popular for
MS-DOSns OS/2), you can use emTeX, otherwise use the LATEX terminal type,
which generates a picture environment.
If nothing else helps, try using the pgm or ppm format and converting it to
a bitmap format your favourite word processor can understand. An invaluable
tool for this is Jef Poskanzer's PBMPLUS package.
The PBMPLUS package is available in the contrib distribution for the
X-Window System. The original site for this is ftp.x.org in /contrib/ .
There are many mirrors, e.g. ftp.tu-darmstadt.de in /pub/X11/contrib/ or .
sunsite.unc.edu in /pub/X11/contrib/ .
The most recent release of pbm by the author is dated December 91 and is
called pbmplus10dec91.tar.Z.
There is new version including lots of patches from the net that is not
maintained by the author called netpbm, with the newest version called
netpbm-1mar1994.tar.gz.
Check archie (see Q2.2) for an archive site near you.
For Microso$t Windows and MacOS you can use the clip board to copy your
graph and paste it into your favourite Windows or MacOS word processor.
3.4 How do I post-process a gnuplot graph?
This depends on the terminal type you use.
You can use the terminal type fig (you may need to recompile gnuplot to
enable this terminal type, by putting #define FIG into <term.h>), and use
the xfig drawing program to edit the plot afterwards. You can obtain the
xfig program from its web site ~http://www.xfig.org/ . More information
about the text-format used for fig can be found in the fig-package.
You may use the tgif terminal, which creates output suitable for reading
within tgif (~http://bourbon.cs.umd.edu:8001/tgif/ ), an interactive 2-D
drawing tool under X11.
Both tgif and xfig can also be obtained from the X Window contrib
distribution (see Q3.3).
Pstoedit can convert Postscript into a wide variety of formats. Pstoedit is
available a ~http://www.geocities.com/SiliconValley/Nework/1958/pstoedit/ .
Gimp may be able to post-process pixel graphics generated with gnuplot.
In general, you should use a vector graphics program to post-process vector
graphic formats, and pixel based programs for pixel graphics.
3.5 How do I change symbol size, line thickness and the like?
Again, this depends on the terminal type. For PostScript, you can edit the
generated PostScript file. An overview of what means what in the PostScript
files gnuplot generates can be found at picard.tamu.edu in /pub/gnuplot/ as
gs-ps.doc. A general introduction to PostScript can be found at
unix.hensa.ac.uk in /pub/misc/ukc.reports/comp.sci/reports/ as 11-92.ps.Z.
3.6 How do I generate plots in the GIF format?
If gnuplot was compiled with the external GD library, there is a gif
terminal.
As of version 1.6, gd library dropped support for gif in favour of the
superior png format. For those who absolutely need gif support in gnuplot,
we are providing older versions of gd library at the gnuplot distribution
sites which are free of Unisys patented code. Please read also the file
README a the ftp-sites.
3.7 Can I animate my graphs?
First have a look at animate.dem in the demo directory of gnuplot.
Basically, animated graphs are a sequence of plots in a suitable format.
Then have a look at the tool whirlgif 3.04, available at
~http://www.danbbs.dk/ dineo/whirlgif . It reads run-length encoded gifs and
packs them into a minimal animation. On the web-pages you will find a manual
and an example.
You can also write a small script to get gnuplot to output a family of GIF
files, then have it execute some animator such as gifsicle:
~http://http://www.lcdf.org/ eddietwo/gifsicle or gifmerge
~http://http://the-labs.com/GIFMerge
mpeg_encode will encode a sequence of images into the mpeg-format.
3.8 How do I plot implicit defined graphs?
Implicit graphs or curves cannot be plotted directly in gnuplot. However
there is a workaround.
gnuplot> # as example. Place your definition in the following line
gnuplot> f(x,y) = y - x**2 / tan(y)
gnuplot> set contour base
gnuplot> set cntrparam levels discrete 0.0
gnuplot> set nosurface
gnuplot> set term table
gnuplot> set out 'curve.dat'
gnuplot> splot f(x,y)
gnuplot> set out
gnuplot> set term {your usual terminal for interactive work}
gnuplot> plot 'curve.dat' w l
The trick is to draw the single contour line z=0 of the surface z=f(x,y),
and store the resulting contour curve to a gnuplot datafile.
4. Wanted features
4.1 What's new in gnuplot 3.7?
Too many things to be named here. Please refer to the NEWS file in the
source distribution.
4.2 Does gnuplot have hidden line removal?
Version 3.7 supports hidden line removal on all platforms; use the command
set hidden3d.
The 16-bit binaries of gnuplot support the hidden line removal only
partially as the hidden-line algorithm may hit the 640k memory limit.
4.3 Does gnuplot support bar-charts/histograms/boxes?
Use the style "with boxes" for bar charts. To get filled boxes, you can try
a modification by Steve Cumming and jturk, available via ftp from the
contrib directory ftp.ucc.ie in /pub/gnuplot/contrib/gpl37fboxpatch.tar.gz .
Bernhard Reiter wrote an AWK script to post-process the fig-terminal output.
Please have a look at
~http://www.usf.uni-osnabrueck.de/ breiter/tools/gnuplot/barcharts.en.html .
4.4 Does gnuplot support pie charts?
It's not possible in gnuplot, but have a look at
~http://www.usf.uni-osnabrueck.de/ breiter/tools/piechart/piecharts.en.html
4.5 Does gnuplot quarterly time charts?
It's not possible in gnuplot, but have a look at
~http://ricardo.ecn.wfu.edu/ cottrell/qplot . The corresponding file
qplot.zip can be obtained from the contrib directory on any gnuplot server.
4.6 Does gnuplot support multiple y-axes on a single plot?
Yes. You can have 2 x- and 2 y-axes per plot. See "plot".
4.7 Can I put multiple pages on one page?
Yes. "set multiplot"
If you use the postscript terminal and plot one graph per page you can use
the program mpage (~http://www.mesa.nl/pub/mpage ) to print multiple logical
pages per physical page. A similar program is the psnup program in the
psutils package. This package is available at any CTAN mirror.
4.8 Can I put both data files and commands into a single file?
This is possible by the new plot "-" possibility. The plot "-" command
allows to read the data to be plot from standard input or the current batch
job.
gnuplot> plot "-"
1 1
2 4
3 9
<CTRL-D>
4.9 Can I put Greek letters and super/subscripts into my labels?
You might try using the LATEX terminal type and putting text like
"\\alpha_{3}" or '\alpha_{3}' into it.
The enhanced option in the postscript terminal is also able to use sub- and
superscripts. It also allows to use Greek letters and symbols via symbol
fonts.
If you include your gnuplot-graphs into a LATEX document you can use the
LATEX-package psfrag to typeset any characters into your graphs.
One more possibility is to use the MetaPost terminal. It supports TEX syntax
and is converted onto encapsulated PostScript by mpost.
4.10 Can I do 1:1 scaling of axes?
Use "set size square".
4.11 Can I put tic marks for x and y axes into 3d plots?
Use the "with boxes" option.
4.12 Does gnuplot support a driver for <graphics format>?
To see a list of the available graphic drivers for your installation of
gnuplot, type "set term".
Some graphics drivers are included in the normal distribution, but are
uncommented by default. If you want to use them, you'll have to change
gnuplot/term.h, and recompile.
4.13 Can I put different text sizes into my plots?
Some terminals, like the postscript terminal can, others can't. Look at the
help for the different terminals.
4.14 How do I modify gnuplot, and apply 'patches'?
For this, you will need to recompile gnuplot.
Modifications people make are either done by replacing files, such as
terminal drivers, or by 'patching'. If a file is a replacement, it will
probably tell you in its README or in the lines at the beginning.
To patch a file, you need Larry Wall's patch utility. On many UNIX systems,
it is already installed; do a man patch to check. If it isn't, you'll have
to get it; it can be found wherever GNU software is archived.
4.15 How do I skip data points?
By specifying ? as a data value, as in
1 2
2 3
3 ?
4 5
4.16 How do I plot every nth point?
This can be specified with the various options for the command "plot".
4.17 How do I plot a vertical line?
Depending on context, the main methods are:
* set arrow .... .... nohead where you have to compute explicitly the
start and the end of the arrow.
* generate (inlined) datapoints and plot them
* switch to parametric mode
5. Miscellaneous
5.1 I've found a bug, what do I do?
First, try to see whether it actually is a bug, or whether it is a feature
which may be turned off by some obscure set-command.
Next, see whether you have an old version of gnuplot; if you do, chances are
the bug has been fixed in a newer release.
Fixes for bugs reported since the release of the current version are held in
the patches directory at gnuplot distribution sites. Before submitting a bug
report, please check whether the bug in question has already been fixed.
If, after checking these things, you still are convinced that there is a
bug, proceed as follows. If you have a fairly general sort of bug report,
posting to comp.graphics.apps.gnuplot is probably the way to go. If you have
investigated a problem in detail, especially if you have a context or
unified diff that fixes the problem, please e-email a report to
bug-gnuplot@dartmouth.edu .
The bug-gnuplot list is for reporting and collecting bug fixes, the
comp.graphics.apps.gnuplot newsgroup will be more help for finding work
arounds or actually solving gnuplot related problems. If you do send in a
bug report, be sure and include the version of gnuplot (including
patchlevel) as shown by the command "show version long", terminal driver,
operating system, an exact description of the bug and input which can
reproduce the bug. Failure to indicate these details can render a solution
to your problem almost impossible. Also, any context diffs should be
referenced against the latest official version of gnuplot if at all
possible.
5.2 Can I use gnuplot routines for my own programs?
Yes. John Campbell jdc@nauvax.ucc.nau.edu has written gplotlib, a version of
gnuplot as C subroutines callable from a C program. This is available as
gplotlib.tar.Z at ftp.nau.edu in /pub/gplotlib.tar.Z . This library has been
updated to be compatible with version 3.5.
On systems supporting the pipes, you can pipe commands to gnuplot from other
programs.
5.3 What extensions have people made to gnuplot? Where can I get them?
Extensions are available from ftp.ucc.ie in /pub/gnuplot/contrib/
Some extensions available:
* barchart_via_fig: awk scripts to produce barcharts with filled boxes.
* date-errorbar: allows dates in the hi/lo fields for errorbars.
* gp37os2-mouse: OS/2 binaries with mouse support (feature included in
current beta versions).
* perltk: A perl/tk canvas widget.
* polyg.patch: Implements a polygon plotting style.
* xgfe: graphical front end using the Qt widgets available at
~http://lnc.usc.edu/docs/xgfe/xgfe.html .
5.4 Can I do heavy-duty data processing with gnuplot?
gnuplot alone is not suited very well for this. One thing you might try is
fudgit, an interactive multi-purpose fitting program written by Martin-D.
Lacasse (isaac@frodo.physics.mcgill.ca). It can use gnuplot as its graphics
back end and is available from ftp.physics.mcgill.ca in
/pub/Fudgit/fudgit_2.33.tar.Z and from the main Linux server, tsx-11.mit.edu
and its numerous mirrors around the world as
/pub/linux/sources/usr.bin/fudgit-2.33.tar.z. Versions are available for
AIX, Data General, HP-UX, IRIX 4, Linux, NeXT, Sun3, Sun4, Ultrix, OS/2 and
MS-DOS. The MS-DOS version is available on simtel20 mirrors (simtel20 itself
has closed down) in the "math" subdirectory as fudg_231.zip.
Carsten Grammes has written a fitting program which has been merged into
gnuplot 3.7.
Michael Courtney has written a program called lsqrft, which uses the
Levenberg-Marquardt - Algorithm for fitting data to a function. It is
available from hobbes.nmsu.edu in /pub/os2/apps/analysis/lsqrft15.zip ;
sources, which should compile on Unix, and executables for MS-DOS and OS/2
are available. There is an interface to the OS/2 presentation manager.
You might also want to look at the applications developed by the Software
Tools Group (STG) at the National Center for Supercomputing Applications.
Ftp to ftp.ncsa.uiuc.edu and get the file README.BROCHURE for more
information.
You can also try pgperl, an integration of the PGPLOT plotting package with
Perl 5. Information can be found at
~http://www.ast.cam.ac.uk/AAO/local/www/kgb/pgperl , the source is available
from ftp.ast.cam.ac.uk in /pub/kgb/pgperl/ or linux.nrao.edu in
/pub/packages/pgperl/ .
Another possibility is Octave. To quote from its README: Octave is a
high-level language, primarily intended for numerical computations. It
provides a convenient command line interface for solving linear and
nonlinear problems numerically. The latest released version of Octave is
always available from ~http://www.che.wisc.edu/octave/ and via anonymous ftp
from bevo.che.wisc.edu in /pub/octave .
5.5 I have ported gnuplotto another system, or patched it. What do I do?
If your patch is small, mail it to info-gnuplot-beta@dartmouth.edu , with a
thorough description of what the patch is supposed to do, which version of
gnuplot it is relative to, etc. Also, you can send notification of the patch
to the FAQ maintainer, if you want a mention. Please don't send the patch
itself to me.
If your modifications are extensive (such as a port to another system),
place them on a web/ftp site for download. There is currently no possibility
to upload patches. Send a note to info-gnuplot-beta@dartmouth.edu on where
to find the patch, what it is supposed to do, which version of gnuplot it is
to be applied against. For the time being (summer 1999) you can also send
the patch to gnuplot@ftp.ucc.ie .
5.6 I want to help in developing the next version of gnuplot. What can I do?
Join the gnuplotbeta test mailing list by sending a mail containing the line
subscribe info-gnuplot-beta in the body (not the subject) of the mail to
Majordomo@Dartmouth.EDU .
6. Making life easier
6.1 How do I plot two functions in non-overlapping regions?
Use a parametric plot. An example:
gnuplot> set parametric
gnuplot> a=1
gnuplot> b=3
gnuplot> c=2
gnuplot> d=4
gnuplot> x1(t) = a+(b-a)*t
gnuplot> x2(t) = c+(d-c)*t
gnuplot> f1(x) = sin(x)
gnuplot> f2(x) = x**2/8
gnuplot> plot [t=0:1] x1(t),f1(x1(t)) title "f1", x2(t), f2(x2(t)) title "f2"
You can also use gnuplot's ability to ignore mathematically undefined
expressions: the expression 1/0 is silently ignored, thus a construction
like
gnuplot> set xran [-10:10]
gnuplot> plot (abs(x)>0.5?1/0: x**2)
plots a quadratic function only for |x| < 0.5.
6.2 How do I run my data through a filter before plotting?
If your system supports the popen() function, as Unix does, you should be
able to run the output through another process, for example a short awk
program, such as
gnuplot> plot "< awk ' { print $1, $3/$2 } ' file.in"
The plot command is very powerful and is able to do some arithmetic on
datafiles. See "help plot".
6.3 How do I make it easier to use gnuplot with LATEX?
There is a set of LATEX macros and shell scripts that are meant to make your
life easier when using gnuplot with LATEX. This package can be found on
ftp.dartmouth.edu in pub/gnuplot/latex.shar , by David Kotz. For example,
the program "plotskel" can turn a gnuplot-output file plot.tex into a
skeleton file skel.tex, that has the same size as the original plot but
contains no graph. With the right macros, the skeleton can be used for
preliminary LATEX passes, reserving the full graph for later passes, saving
tremendous amounts of time.
6.4 How do I save and restore my settings?
Use the "save" and "load" commands for this; see "help save" and "help load"
for details.
6.5 How do I plot lines (not grids) using splot?
If the data in a data file for splot is arranged in such a way that each one
has the same number of data points (using blank lines as delimiters, as
usual), splot will plot the data with a grid. If you want to plot just
lines, use a different number of data entries (you can do this by doubling
the last data point, for example). Don't forget to set parametric mode, of
course.
6.6 How do I plot a function f(x,y) which is bounded by other functions in
the x-y plain?
An example:
gnuplot> f(x,y) = x**2 + y **2
gnuplot> x(u) = 3*u
gnuplot> yu(x) = x**2
gnuplot> yl(x) = -x**2
gnuplot> set parametric
gnuplot> set cont
gnuplot> splot [0:1] [0:1] u,yl(x(u))+(yu(x(u)) - yl(x(u)))*v,\
> f(x(u), (yu(x(u)) - yl(x(u)))*v)
6.7 How do I get rid of <feature> in a plot>?
Usually, there is a set command to do this; do a gnuplot> ?set no for a
short overview.
6.8 How do I call gnuplot from my own programs?
There's a code which works for a UNIX system, using (efficient) named pipes.
On M$ Windows platforms, due to the lacking standard input of GUI programs,
you need to use the C-code pgnuplot written by Hans-Bernhard Broeker
broeker@physik.rwth-aachen.de . You can obtain this file on a ftp-server
carrying the source for gnuplot.
6.9 What if I need h-bar (Planck's constant)?
There is no predefined variable like pi. However to put h-bar as a character
into the label, you must use the PostScript terminal. You can play around
with constructs like @{/=56 -} {/=24 h} or {/=8 @{/Symbol=24 -} _{/=14 h}}
In the latter, the "-" (a long one in /Symbol) is non-spacing and 24-pt. The
14-pt "h" is offset by an 8-pt space (which is the space preceding the "_")
but smaller, since it's written as a subscript. But these don't look too
much like the hbar we're used to, since the bar is horizontal instead of
sloped. I don't see a way to get that. I tried using an accent (
264 in isoLatin encoding), but I haven't found a way to scale and position
the pieces correctly.
One more possibility would be {/=14 @^{/Symbol=10 -}{/=14 h}}.
(This is a hint by Richard Crawford).
7. Known Problems
7.1 Gnuplot is not plotting any points under X11! How come?
On VMS, you need to make several symbols:
$ gnuplot_x11 :== $disk:[directory]gnuplot_x11
$ gnuplot :== $disk:[directory]gnuplot.exe
$ def/job GNUPLOT$HELP disk:[directory]gnuplot.hlb
Then run gnuplot from your command line, and use "set term x11".
If you run gnuplot on Unix systems, be sure that the newest gnuplot_x11 is
the first in your search path.
7.2 My isoline data generated by a Fortran program is not handled correctly.
What can I do?
Update to the newest gnuplot. Gnuplot 3.7 is able to read Fortran-style
files where a blank line can contain more than a linefeed.
7.3 Why does gnuplot ignore my very small numbers?
Gnuplot treats all numbers less than 1e-08 as zero, by default. Thus, if you
are trying to plot a collection of very small numbers, they may be plotted
as zero. Worse, if you're plotting on a log scale, they will be off scale.
Or, if the whole set of numbers is "zero", your range may be considered
empty:
gnuplot> plot 'test1'
Warning: empty y range [4.047e-19:3e-11], adjusting to [-1:1]
gnuplot> set yrange [4e-19:3e-11]
gnuplot> plot 'test1'
^
y range is less than `zero`
The solution is to change gnuplot's idea of "zero":
gnuplot> set zero 1e-20
For more information, "help set zero"
7.4 Gnuplot is plotting nothing when run via gnuplot <filename>! What can I
do?
Put a pause -1 after the plot command in the file. On an X-Window System
system, you can also use the -persist option, the X11 window is then not
closed. Close the X11 window by typing "q" when the focus is on it.
7.5 My formulas are giving me nonsense results! What's going on?
Gnuplot does integer, and not floating point, arithmetic on integer
expressions. For example, the expression 1/3 evaluates to zero. If you want
floating point expressions, supply trailing dots for your floating point
numbers. Example:
gnuplot> print 1/3
0
gnuplot> print 1./3.
0.333333
This way of evaluating integer expressions is shared by both C and Fortran.
7.6 Set output 'filename' isn't outputting everything it should!