Как сделать диаграммы 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
(Вы должны изменить шрифт на тот, который у вас есть.)
Это выглядит так:
Это круто? Ну, мне нравится так думать! Но, если серьезно, есть причины для этого макета.
- Я хочу, чтобы данные были первостепенными. Вот почему граница не подчеркнута, а цвет фона отсутствует.
- Тем не менее, я хочу, чтобы зритель увидел, где график пересекает значения, показанные на метках, отсюда и видимые отметки и (ненавязчивая) сетка.
Чтобы графы "вписались" в стиль документа, я склонен сделать пару вещей:
- Используйте тот же шрифт, что и основной текст моих документов.
- Используйте одинаковый размер, стиль линий, границы и так далее для всех графиков в документе.
- Сопоставьте размер графика с шириной столбца или текстового блока.