gnuplot pm3d получает белые линии

Я рисую спектрограмму с помощью gnuplot версии 4.6. Я убедился, что это самая новая версия здесь: http://www.gnuplot.info/download.html

Gnuplot устанавливается из репозитория Debian.

Область графика и шкала справа содержат странные белые линии. Они как бы разделяют данные. На участке графика с плотными данными они выглядят как шахматный узор:

http://imageshack.us/a/img822/6219/linese.png

Линии менее заметны на шкале, но они тоже есть. На шкале только горизонтальные линии.

Я думал, что дело в гамме монитора или в чем-то еще, но линии появляются и с pdf monochrome.

Мой код:

#!/usr/bin/gnuplot

set term pdf
# set style fill noborder # checked with and without this line
set output "../results1/fft.pdf"
set pm3d map
splot "../results1/fft.dat"

Как вы можете прочитать там, я пытался использовать параметр noborder, но существуют как с линиями, так и без них.

Примерные данные могут быть:

0 1 3
0 2 3
0 3 4
0 4 2
0 5 2
0 6 3
0 7 4
0 8 3

1 1 3
1 2 2
1 3 4
1 4 2
1 5 2
1 6 3
1 7 4
1 8 4

2 1 2
2 2 4
2 3 4
2 4 3
2 5 2
2 6 4
2 7 2
2 8 2

3 1 2
3 2 3
3 3 3
3 4 4
3 5 2
3 6 2
3 7 2
3 8 2

У вас есть идеи, как избавиться от этих строк?


person nuoritoveri    schedule 01.10.2012    source источник


Ответы (1)


Меня это тоже какое-то время мучило. Лучший обходной путь, который у меня есть, вдохновлен этот пост . В основном вы можете использовать

plot "datafile" with image

вместо команды splot. Есть некоторые тонкие различия в том, как данные отображаются на графике, но это создает .pdf без этих неприятных промежутков между цветными областями и файл гораздо меньшего размера.

Обратите внимание, что это действительно работает только для данных, которые образуют прямоугольную сетку! Если файл данных имеет матричный формат (без данных x или y, кроме количества точек данных), который для вашего примера будет

3 3 2 2
3 2 4 3
...

(значение z из первой строки каждого блока составляет первую строку и т. д.) вы можете использовать команду

plot 'datafile' ($1*xincr - x0):($2*yincr - y0):3 matrix with image

Содержимое скобок является необязательным, но позволяет масштабировать результирующий график до правильных значений x и y. (xincr — это переменная gnuplot, которую вы должны установить для приращения по оси x в данных, x0 — это смещение по оси x и т. д.)

Если это приводит к белому зазору вокруг графика, используйте команду plot один раз, измените масштаб осей и снова нанесите график, например.

set terminal unknown
plot 'datafile' ($1*xincr - x0):($2*yincr - y0):3 matrix with image
set xr[GPVAL_DATA_X_MIN:GPVAL_DATA_X_MAX]
set yr[GPVAL_DATA_Y_MIN:GPVAL_DATA_Y_MAX]
set output "fft.pdf"
replot

Второй ответ

Я считаю, что этот эффект зависит от программы просмотра PDF. Например, он отображается в evince под linux, но не в okular. В зависимости от вашего приложения вы можете просто использовать другое средство просмотра.

person andyras    schedule 01.10.2012
comment
Спасибо за ответ и дополнительные советы по весам. Я установил okular, чтобы проверить, и белые линии все еще там. Теперь я поэкспериментирую с первым решением, сначала попробую, на шкале все еще есть линии, но я не уверен, что мне действительно нужно использовать шкалу. - person nuoritoveri; 02.10.2012
comment
Да, у меня были проблемы с избавлением от линий на цветовой полосе. Я думаю, это один из случаев, когда использование okular помогло. Программа Adobe Reader также могла отображать гладкую цветовую полосу. Конечно, всегда есть терминал png, у которого нет этой проблемы... - person andyras; 02.10.2012