2014 dxdy logo

Научный форум dxdy

Математика, Физика, Computer Science, Machine Learning, LaTeX, Механика и Техника, Химия,
Биология и Медицина, Экономика и Финансовая Математика, Гуманитарные науки




Начать новую тему Ответить на тему
 
 Два графика в один осях \addplot3 (pgfplots)
Сообщение10.06.2021, 16:26 


29/04/21
20
Здравствуйте.

Хочу построить два графика с помощью pgfplots. Вот первый:

Изображение
Код:
\begin{tikzpicture}
         \begin{axis}[
            xmin=-pi,
            xmax=pi,
            ymin=-pi,
            ymax=pi,
            zmin=0,
            zmax=2.5,
            xlabel={$\varkappa_x$},
            ylabel={$\varkappa_y$},
            zlabel={$\omega$},
            xtick={-pi,-pi/2,0,pi/2,pi},
            xticklabels={$-\pi$,$-\frac{\pi}{2}$,$0$,$\frac{\pi}{2}$,$\pi$},
            ytick={-pi,-pi/2,0,pi/2,pi},
            yticklabels={$-\pi$,$-\frac{\pi}{2}$,$0$,$\frac{\pi}{2}$,$\pi$}
            ]
            \addplot3[surf,domain=-pi:pi,samples=40]{sqrt(2*sin(deg((x+y)/2))^2+sin(deg(x/2))^2+sin(deg(y/2))^2-sqrt(4*sin(deg((x+y)/2))^4+(sin(deg(x/2))^2-sin(deg(y/2))^2)^2))};
         \end{axis}
      \end{tikzpicture}
,

вот второй:
Изображение

Код:
\begin{tikzpicture}
         \begin{axis}[
            xmin=-pi,
            xmax=pi,
            ymin=-pi,
            ymax=pi,
            zmin=0,
            zmax=2.5,
            xlabel={$\varkappa_x$},
            ylabel={$\varkappa_y$},
            zlabel={$\omega$},
            xtick={-pi,-pi/2,0,pi/2,pi},
            xticklabels={$-\pi$,$-\frac{\pi}{2}$,$0$,$\frac{\pi}{2}$,$\pi$},
            ytick={-pi,-pi/2,0,pi/2,pi},
            yticklabels={$-\pi$,$-\frac{\pi}{2}$,$0$,$\frac{\pi}{2}$,$\pi$}
            ]
            %\addplot3[surf,domain=-pi:pi,samples=40]{sqrt(2*sin(deg((x+y)/2))^2+sin(deg(x/2))^2+sin(deg(y/2))^2+sqrt(4*sin(deg((x+y)/2))^4+(sin(deg(x/2))^2-sin(deg(y/2))^2)^2))};
         \end{axis}
      \end{tikzpicture}
.

Когда пытаюсь построить оба графика в одних и тех же осях, вот что получается

Изображение

Код:
\begin{tikzpicture}
         \begin{axis}[
            xmin=-pi,
            xmax=pi,
            ymin=-pi,
            ymax=pi,
            zmin=0,
            zmax=2.5,
            xlabel={$\varkappa_x$},
            ylabel={$\varkappa_y$},
            zlabel={$\omega$},
            xtick={-pi,-pi/2,0,pi/2,pi},
            xticklabels={$-\pi$,$-\frac{\pi}{2}$,$0$,$\frac{\pi}{2}$,$\pi$},
            ytick={-pi,-pi/2,0,pi/2,pi},
            yticklabels={$-\pi$,$-\frac{\pi}{2}$,$0$,$\frac{\pi}{2}$,$\pi$}
            ]
            \addplot3[surf,domain=-pi:pi,samples=40]{sqrt(2*sin(deg((x+y)/2))^2+sin(deg(x/2))^2+sin(deg(y/2))^2-sqrt(4*sin(deg((x+y)/2))^4+(sin(deg(x/2))^2-sin(deg(y/2))^2)^2))};
            %\addplot3[surf,domain=-pi:pi,samples=40]{sqrt(2*sin(deg((x+y)/2))^2+sin(deg(x/2))^2+sin(deg(y/2))^2+sqrt(4*sin(deg((x+y)/2))^4+(sin(deg(x/2))^2-sin(deg(y/2))^2)^2))};
         \end{axis}
      \end{tikzpicture}
,

то есть у меня второй график перекрывает первый в окрестности нуля. Как можно сделать, чтобы первый график в окрестности нулю накладывался на второй? Понятно, что если я поменяю последовательность вызова \addplot3, то первый график всюду наложиться на второй. Хотелось бы только в окрестности нуля, чтобы картинка выглядела правильно.

 Профиль  
                  
 
 Re: Два графика в один осях \addplot3 (pgfplots)
Сообщение10.06.2021, 16:32 
Заслуженный участник


09/05/12
25179
А как вы себе это представляете?

Можно поменять ракурс, но какие-то участки одной поверхности заведомо будут перекрываться другими. Можно сделать "верхнюю" поверхность полупрозрачной (добавив параметр opacity=0.5 или что-нибудь подобное), но результат, пожалуй, будет выглядеть не сильно лучше. Можно сделать верхнюю поверхность "сеткой" (заменить surf на mesh), но... в общем, мне как-то тоже не нравится.

Ну и делать это конкретно в окрестности нуля, пожалуй, еще сложнее (разве что после рисования того, что уже есть, добавить "третий" вариант на уменьшенном диапазоне координат, сделав для него один из вариантов, упомянутых выше).

 Профиль  
                  
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 2 ] 

Модераторы: Karan, Toucan, PAV, maxal, Супермодераторы



Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group