如何让gnuplot图表看起来更具视觉吸引力?

时间:2017-01-11 23:03:42

标签: gnuplot gnuplot-iostream

我已经和gnuplot合作了一段时间了。最近开始用它来创建报告发送给客户。我试着用我的绘图剧本进行实验,但没有太多的内容。

我的问题很简单,如何从Gnuplot制作图表真的很棒?考虑D3 / chartjs输出以进行比较。

我理解'太棒了'是主观的。但是这方面的一般指示会有很多帮助!

1 个答案:

答案 0 :(得分:2)

在线查找您喜欢的调色板。一个很好的来源是this

尝试边框样式,网格样式等。 一旦您满意,请将样式项放在gnuplotrc

这是我的gnuplotrc:

set encoding utf8

# See https://github.com/Gnuplotting/gnuplot-palettes
# Line styles (colorbrewer Set1)
set style line 1 lc rgb '#E41A1C' pt 1 ps 1 lt 1 lw 2 # red
set style line 2 lc rgb '#377EB8' pt 6 ps 1 lt 1 lw 2 # blue
set style line 3 lc rgb '#4DAF4A' pt 2 ps 1 lt 1 lw 2 # green
set style line 4 lc rgb '#984EA3' pt 3 ps 1 lt 1 lw 2 # purple
set style line 5 lc rgb '#FF7F00' pt 4 ps 1 lt 1 lw 2 # orange
set style line 6 lc rgb '#FFFF33' pt 5 ps 1 lt 1 lw 2 # yellow
set style line 7 lc rgb '#A65628' pt 7 ps 1 lt 1 lw 2 # brown
set style line 8 lc rgb '#F781BF' pt 8 ps 1 lt 1 lw 2 # pink
# Palette
set palette maxcolors 8
set palette defined ( 0 '#E41A1C', 1 '#377EB8', 2 '#4DAF4A', 3 '#984EA3',\
4 '#FF7F00', 5 '#FFFF33', 6 '#A65628', 7 '#F781BF' )

# Standard border
set style line 11 lc rgb '#808080' lt 1 lw 3
set border 0 back ls 11
set tics out nomirror

# Standard grid
set style line 12 lc rgb '#808080' lt 0 lw 1
set grid back ls 12
unset grid

这是我的gnuplot文件的模板:

set terminal pdfcairo enhanced color dashed font "Alegreya, 14" \
rounded size 16 cm, 9.6 cm

# Default encoding, line styles, pallette, border and grid are set in
# /usr/local/share/gnuplot/x.y/gnuplotrc.

set xlabel "x"
set ylabel "f(x)"
set grid
set key right top
set xrange[0:6.28]
set yrange[-1:1]
set output 'sinx.pdf'

plot sin(x) w l ls 1, cos(x) w l ls 2

(您应该将字体更改为您可用的字体。)

看起来像这样:

sin(x) and cos(x) graph

这真棒吗?那么喜欢这样想!但严肃地说,这种布局有原因。

  • 我希望数据至关重要。这就是为什么边界没有被重视并且没有背景颜色。
  • 尽管如此,我希望观众能够看到图表与标签上显示的值相交的位置,从而显示可见的标记和(不显眼的)网格。

为了使图形“适合”文档的样式,我倾向于做一些事情:

  1. 使用与我的文档正文相同的字体。
  2. 对文档中的所有图表使用相同的大小,线条样式,边框等。
  3. 将图表大小与列或文本块的宽度匹配。