Как сделать диаграммы gnuplot более привлекательными?

Я уже давно работаю с gnuplot. Недавно начал использовать его для создания отчетов для отправки клиентам. Я пытался поэкспериментировать с моим сценарием, но мало что из этого получилось.

У меня просто вопрос: как сделать так, чтобы графики из Gnuplot выглядели действительно круто? Подумайте о выходе D3/chartjs для сравнения.

Я понимаю, что "круто" субъективно. Но общие указания в этом отношении очень помогут!

1 ответ

Решение

Ищите цветовые палитры, которые вам нравятся онлайн. Один хороший источник это.

Экспериментируйте со стилями границ, стилями сетки и так далее. Как только вы довольны этим, поместите элементы стиля в свой 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) и cos (x

Это круто? Ну, мне нравится так думать! Но, если серьезно, есть причины для этого макета.

  • Я хочу, чтобы данные были первостепенными. Вот почему граница не подчеркнута, а цвет фона отсутствует.
  • Тем не менее, я хочу, чтобы зритель увидел, где график пересекает значения, показанные на метках, отсюда и видимые отметки и (ненавязчивая) сетка.

Чтобы графы "вписались" в стиль документа, я склонен сделать пару вещей:

  1. Используйте тот же шрифт, что и основной текст моих документов.
  2. Используйте одинаковый размер, стиль линий, границы и так далее для всех графиков в документе.
  3. Сопоставьте размер графика с шириной столбца или текстового блока.
Другие вопросы по тегам