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

How to make gnuplot charts look more visually appealing?

我使用 gnuplot 已经有一段时间了。最近开始使用它来创建发送给客户的报告。我试着用我的绘图脚本进行试验,但结果并不多。

我的问题只是,如何使 Gnuplot 的图表看起来非常棒?考虑 D3/chartjs 输出进行比较。

我理解 'awesome' 是主观的。但是在这方面的一般指示会有很大帮助!

在线寻找您喜欢的调色板。一个不错的来源是 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

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

看起来像这样:

这很棒吗?好吧也这么认为!但说真的,这种布局是有原因的。

  • 我希望数据至上。这就是为什么边框没有被放大并且没有背景颜色的原因。
  • 尽管如此,我希望查看者看到图表与标签上显示的值相交的位置,因此可见刻度线和(不显眼的)网格。

为了使图表 "fit" 成为文档的样式,我倾向于做几件事:

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