2013-08-05 5 views
1

Мне нужно построить трехмерную поверхность (из файла), а затем построить линию (из другого файла) над этой поверхностью. Я нашел связанный поток (Gnuplot: Plotting a path over a surface), но предлагаемый ответ был тем, что я уже пробовал (и это не сработало).Gnuplot 3D поверхность участка с наложенной линией?

Поверхность представляет собой поверхность потенциальной энергии 3D, а линия является траекторией над этой поверхностью. Линия описывает, как система, которую я изучаю, развивается по поверхности.

В настоящее время я делаю это:

splot "trajectory.dat" using 4:6:10 title "{/Helvetica=23 trajectory}" with lines lt -1 
set pm3d 
set hidden3d 

splot "surface.dat" using 1:3:7 title "{/Helvetica=23 surface}" 

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

Я попытался изменить порядок сюжета (сначала поверхность, а затем траекторию), но это тоже не работает.

Я также попытался поместить смещение по оси Z к траектории, чтобы проверить, что это не случай, когда поверхность нанесена поверх траектории. Это тоже не удалось.

Любые идеи о том, как действовать? Я пробирался через файлы справки gnuplot, и нет примера или случая, который помогает. Я хорошо и действительно застрял. Пожалуйста помоги! Я очень ценю любой вклад.

ответ

1

Вы должны иметь один splot вызов, как это также сделано в ответ на Gnuplot: Plotting a path over a surface:

set pm3d 
set hidden3d 
splot "trajectory.dat" using 4:6:10 title "trajectory" with lines lt -1,\ 
     "surface.dat" using 1:3:7 title "surface" 

В противном случае, если вы не в режиме multiplot, то второй splot создает совершенно новый график.

+0

Thanks Christoph, После внесения этих изменений я вижу траекторию с определенных углов обзора, но не с другими. Траектория видима, если я поворачиваю график таким образом, чтобы траектория имела белый цвет осей в качестве фона. Однако, если траектория находится на линии видимости с поверхностью, она исчезает и видна только поверхность. Возможно ли, чтобы траектория была видимой на поверхности? Так должно быть в публикации. Я могу предоставить копию сценариев и изображений, если мое объяснение недостаточно ясно. –

+0

Использование 'pm3d' вместе с' hidden3d' не является тривиальным (вы можете, например, «установить pm3d hidden3d'). Зачем вам нужно «hidden3d»? Это только для самой поверхности или если поверхность также скрывает части траектории. Это только для поверхности, вы можете попробовать 'set pm3d depthorder'. В противном случае было бы интересно иметь образцовое изображение, показывающее вид поведения, который у вас есть сейчас. – Christoph

+0

Еще раз спасибо! Причиной использования hidden3d было удаление уродливых линий на 3d-поверхности. Однако, если я изменю тип линии на 0 (маленькие черные точки), эта проблема будет исправлена. После снятия скрытого3d и изменения типа линии до 0 я вижу траекторию ясно со всех сторон, и нет никаких уродливых линий, соединяющих точки на поверхности. Большое спасибо! Надеюсь, что когда-нибудь я смогу вернуться. –

Смежные вопросы