2015-02-20 3 views
4

У меня есть функция, зависящая от phi и theta, которую я хочу построить на поверхности сферы. дата хранится в текстовом файле с колоннами:GNUPLOT: Построение на поверхности сферы

1: x = R*sin(theta)*cos(phi) 
2: y = R*sin(theta)*sin(phi) 
3: z = R*cos(theta) 
4: density 

Я использую следующий код GNUPLOT для построения:

set terminal wxt size 800,800 
set mapping cartesian 
set view equal xyz 
set xlabel 'x' 
set ylabel 'y' 
set zlabel 'z' 
splot "densityprofile_100.000.txt" u 1:2:3:4 with pm3d 
pause -1 

К сожалению Gnuplot не кажется, чтобы быть в состоянии должным образом представлять цвета на сфере. Кажется, какая-то тень, от которой я не могу избавиться; увидеть картину здесь:

enter image description here

Когда я включаю сферу с моей мыши, тень становится все меньше и больше, но не положение, в котором она полностью исчезает. Любая помощь приветствуется.

+0

Пожалуйста, загрузите somehere изображения и разместить ссылку. Тогда кто-то с более высокой репутацией может включить его для вас. Кроме того, предоставьте файл данных, который позволяет воспроизвести/проверить/исправить вашу проблему. – Christoph

+0

Угадайте: попробуйте использовать 'set autoscale cbfix', чтобы диапазон цветов охватывал только те значения, которые у вас есть в вашем файле данных. – Christoph

+0

Хорошо, я добавил изображение в строку. Не могли бы вы также загрузить файл данных? Без этого я не могу проверить, что случилось. – Christoph

ответ

3

Я нашел решение моей проблемы, добавив следующую строку:

set pm3d depthorder 
0

Угадайте, возможно, порядок глубины вызывает некоторые проблемы. Вы пробовали параметр pm3d "hidden3d"?

из GNUPLOT помощи на pm3d:

Опция hidden3d принимает в качестве аргумента LineStyle который должен быть создан набор стилей линии .... (стиль не обязательно должен присутствовать, когда установка pm3d, но он должен присутствовать при построении графика). Если установлено, строки - , нарисованные с использованием указанного стиля линии, с учетом скрытой линии . Это намного эффективнее, чем использование набора команд hidden3d, поскольку он действительно не вычисляет удаление скрытой строки, но только рисует заполненные многоугольники в правильном порядке. Поэтому рекомендуется выбор при использовании pm3d является

set pm3d at s hidden3d 100 
set style line 100 lt 5 lw 0.5 
unset hidden3d 
unset surf 
splot x*x+y*y 
Смежные вопросы