English 中文(简体)
Choosing line type and color in Gnuplot 4.0
原标题:
  • 时间:2010-01-15 22:52:16
  •  标签:
  • gnuplot

I have two pairs of datasets, which I need to plot using Gnuplot.

I want the first pair to be plotted in red, one solid and one dashed. The second pair, I want to plot in blue, one solid and one dashed.

I ve experimented with set style line several times, but I cannot get this exact behaviour. My last attempt (attached) plots the first pair in red (solid) and the second pair in blue (dotted).

Any help will be greatly appreciated.

set style line 1 lt 1 lw 3 pt 3
set style line 2 lt 1 lw 3 pt 3
set style line 3 lt 3 lw 3 pt 3
set style line 4 lt 3 lw 3 pt 3
plot  data1.dat  using 1:3 w l ls 1,
      data1.dat  using 1:4 w l ls 2,
      data2.dat  using 1:3 w l ls 3,
      data2.dat  using 1:4 w l ls 4
问题回答

You need to use linecolor instead of lc, like:

set style line 1 lt 1 lw 3 pt 3 linecolor rgb "red"

"help set style line" gives you more info.

I ve ran into this topic, because i was struggling with dashed lines too (gnuplot 4.6 patchlevel 0)

If you use:

set termoption dashed

Your posted code will work accordingly.

Related question:
However, if I want to export a png with: set terminal png, this isn t working anymore. Anyone got a clue why?

Turns out, out, gnuplots png export library doesnt support this.
Possbile solutions:

  • one can simply export to ps, then convert it with pstopng
  • according to @christoph, if you use pngcairo as your terminal (set terminal pngcairo) it will work

You can also set the dashed option when setting your terminal, for instance:

set term pdf dashed

Here is the syntax:

  set terminal pdf {monochrome|color|colour}
                   {{no}enhanced}
                   {fname "<font>"} {fsize <fontsize>}
                   {font "<fontname>{,<fontsize>}"}
                   {linewidth <lw>} {rounded|butt}
                   {solid|dashed} {dl <dashlength>}}
                   {size <XX>{unit},<YY>{unit}}

and an example:

set terminal pdfcairo monochrome enhanced font "Times-New-Roman,12" dashed

You might want to look at the Pyxplot plotting package http://pyxplot.org.uk which has very similar syntax to gnuplot, but with the rough edges cleaned up. It handles colors and line styles quite neatly, and homogeneously between x11 and eps/pdf terminals.

The Pyxplot script for what you want to do above would be:

set style 1 lt 1 lw 3 color red
set style 2 lt 1 lw 3 color blue
set style 3 lt 2 lw 3 color red
set style 4 lt 2 lw 3 color blue
plot  data1.dat  using 1:3 w l style 1,
   data1.dat  using 1:4 w l style 2,
   data2.dat  using 1:3 w l style 3,
   data2.dat  using 1:4 w l style 4`

Edit: Sorry, this won t work for you. I just remembered the line color thing is in 4.2. I ran into this problem in the past and my fix was to upgrade gnuplot.

You can control the color with set style line as well. "lt 3" will give you a dashed line while "lt 1" will give you a solid line. To add color, you can use "lc rgb color ". This should do what you need:


set style line 1 lt 1 lw 3 pt 3 lc rgb "red"
set style line 2 lt 3 lw 3 pt 3 lc rgb "red"
set style line 3 lt 1 lw 3 pt 3 lc rgb "blue"
set style line 4 lt 3 lw 3 pt 3 lc rgb "blue"

I know the question is old but I found this very helpful http://www.gnuplot.info/demo_canvas/dashcolor.html . So you can choose linetype and linecolor separately but you have to precede everything by "set termoption dash" (worked for me in gnuplot 4.4).





相关问题
Choosing line type and color in Gnuplot 4.0

I have two pairs of datasets, which I need to plot using Gnuplot. I want the first pair to be plotted in red, one solid and one dashed. The second pair, I want to plot in blue, one solid and one ...

Graph Formatting Tools For Octave

I know that Matlab allows for you to format the graph after its created through the interface. However there isn t the same features in Octave. Is there a tool that goes between Octave and GnuPlot? If ...

Labels on the input data in gnuplot

I have a datafile that looks like this #index name1 name2 name3 1 2 3 4 2 3 4 5 3 4 5 6 4 5 6 7 I want to plot 3 lines: plot "data" using 1:2 with lines, ... This works ok, except for the line ...

Drawing gant-like diagram from file in C with boxes and axis

I am programming system in C and I would like to draw rectangles into 2D plain with axis X and Y to represent generated data (scheduling problems).It should LOOK LIKE gant chart. Information are ...

Treat axis as date/time (epoch)

I m generating a graph with gnuplot of activity over the last twenty four hours, but the time axis looks really bad because it s trying to fit the long number for every five minutes in the last day. ...

Gnuplot Cumulative Column Question

I have some data. #Time Distance 1 3 2 5 4 9 8 11 12 17 14 20 16 34 20 40 I want to plot the cumulative distance wrt time in gnuplot ... (it should be easy) but I do not know how. x

Direct 2D gnuplot PNG animation?

Can anyone please confirm that yes/no Gnuplot 4.5 (on CVS) can output 2D animated PNG files? I have numerous datasets but one line that I d like to show iteratively in 3 different places in my graph. ...

热门标签