К сожалению, это артефакт из-за сглаживания в средстве просмотра документов, когда два заполненных многоугольника соприкасаются друг с другом. Это происходит со стилем построения filledcurves
, который составляет заполненную область многих четырехугольников, а также со стилем pm3d
(как вы можете видеть в палитре цветов, которая показывает те же артефакты). См. Также проблемный узор муара в изображении, созданном с помощью gnuplot pm3d и вывода pdf. для конкретного демонстрационного случая.
Есть обходной путь, который, однако, очень громоздкий. Вы должны сгенерировать заполненный полигональный объект с помощью некоторого скрипта, заполнить его, использовать stats
для определения диапазонов, построить пустой график (см., Например, Gnuplot - как я могу получить фигуру без точки? (я хочу иметь только оси, заголовок и метки x и y)).
Я предполагаю, что у вас есть файл данных с тремя столбцами, и вы можете построить их с помощью
plot 'test.dat' using 1:2:3 with filledcurves
Используя следующий очень грубый скрипт Python
from __future__ import print_function
from numpy import loadtxt
import sys
M = loadtxt(sys.argv[1])
print('set object 1 polygon ', end='')
for i in range(0,len(M)):
if (i == 0):
print('from {0},{1} '.format(M[i][0], M[i][1]), end='')
else:
print('to {0},{1} '.format(M[i][0], M[i][1]), end='')
for i in range(len(M)-1,-1,-1):
print('to {0},{1} '.format(M[i][0], M[i][2]), end='')
Вы можете построить заполненную кривую с помощью
# determine the autoscaling ranges
set terminal push
set terminal unknown
plot 'test.dat' using 1:2, '' using 1:3
set terminal pop
set xrange [GPVAL_X_MIN:GPVAL_X_MAX]
set yrange [GPVAL_Y_MIN:GPVAL_Y_MAX]
eval(system('python script.py test.dat'))
set object 1 polygon fillstyle solid noborder fillcolor rgb 'red'
plot NaN notitle
Это еще не решает проблему с зазубренной цветовой коробкой :(
person
Christoph
schedule
10.07.2015
with pm3d
, см. Мое объяснение в проблемном шаблоне муара в изображении, созданном с помощью gnuplot pm3d и вывода pdf. Однако этот способ обхода не работает в вашем случае. У меня уже давно есть такая же проблема с заполненными кривыми в моем списке задач ... Обходной путь, который я использую, - это написать скрипт python, который генерирует полигональные объекты из ваших файлов данных. Могу опубликовать позже. - person Christoph   schedule 02.07.2015set object polygon from ... to ... to ...
, вы получите красивую заливку. Чтобы создать этот многоугольник, вам понадобится внешний скрипт (мой скрипт здесь не нужен, он был специально разработан для моего случая). Но опять же, вы не можете использоватьlc palette frac
и не получаете цветовую карту. Так что это решение было бы довольно громоздким, но не невозможным. Во время написания диссертации те же самые артефакты меня очень беспокоили, поэтому я пошел в долгий путь. И я всегда хотел исправить это в коде, но пока не стал. - person Christoph   schedule 03.07.2015