Gnuplot - Исправление прозрачной интерполяции трехмерного графика

На рисунке ниже вы можете видеть линии через интерполированную поверхность. Как я могу предотвратить это? Я создал график с помощью следующих команд ("data.txt" содержит набор точек, представляющих поверхность sin(x^2+y^2)/(x^2+y^2):

set pm3d interpolate 0,0
set dgrid3d 30,30
splot "data.txt" with lines

2 ответа

Решение

Я не эксперт по Gnuplot, но, посмотрев на страницу документации, вы увидите set style fill команда.

Из документации написано:

Стиль заполнения по умолчанию пуст. Опция solid вызывает заливку сплошным цветом, если терминал это поддерживает. Параметр указывает интенсивность цвета заливки. При значении 0,0 поле пустое, при значении 1,0 внутренняя область того же цвета, что и текущий тип линии. Некоторые типы терминалов могут постоянно изменять плотность; другие реализуют только несколько уровней частичного заполнения. Если параметр не указан, по умолчанию используется значение 1.

В вашем случае, я полагаю, вы хотите команду, которая находится на линии set style fill transparent 1 или же set style fill solid 1, Вы должны увидеть, как они оба выглядят и выбрать тот, который лучше. Вы также можете связываться с альфа-значением и попробовать что-то вроде 0,85, чтобы увидеть, выглядит ли оно лучше, чем полностью сплошная заливка.

Есть способы, которые вы можете попробовать, и проверить, соответствуют ли они вашим потребностям

set pm3d depthorder

или же

set hidden3d ...

Более сложные примеры: демонстрационный скрипт gnuplot: hidden2.dem

Другие вопросы по тегам