pgfplots / gnuplot : 3D 2- 파라 메트릭 함수를 그리는 방법

Aug 22 2020

2- 모수 곡면 함수를 플로팅하고 싶습니다.

set parametric
splot cos(u)*cos(v),sin(u)*cos(v),sin(v) 

(힌트 : gnuplot에 넣으면 작동합니다.)

이러한 특수 기능을 위해서는 pgfplots의 특수 설정이 필요하다고 생각합니다.

그래서 : 두 번째 예제는 왜 아무것도 표시하지 않습니까?
여기 pgfplots에서 어떤 옵션을 설정해야합니까?

% arara: pdflatex: {shell: yes}

\documentclass[margin=3mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest, width=7cm}
\begin{document}

\begin{tikzpicture}
\begin{axis}[title=Works]
\addplot3[] 
gnuplot{sin(x)*sin(y)}; 
\end{axis}
\end{tikzpicture}

\begin{tikzpicture}[font=\footnotesize,]
\begin{axis}[title={Works not - what do I have to set?}]
\addplot3[]
gnuplot {
set parametric
splot cos(u)*cos(v),sin(u)*cos(v),sin(v) 
};
\end{axis}
\end{tikzpicture}
\end{document}
\end{document}

sth를 제공해야합니다. 이렇게 :

답변

2 TorbjørnT. Aug 23 2020 at 17:07

.gnuplotGnuplot에 전달되는 코드를 확인하기 위해 볼 수 있는 파일을 얻습니다 .

귀하의 경우에는

set table "test.pgf-plot.table"; set format "%.5f"
set format "%.7e";; set samples 25, 25; set dummy x,y; set isosamples 25, 25; splot [x=-5:5] [y=-5:5]  set parametric splot cos(u)*cos(v),sin(u)*cos(v),sin(v) ;

보시다시피 splot <domain settings> <your code>, Gnuplot은

splot ... set parametric

splot함수 표현식이 있어야 하기 때문에 작동하지 않습니다 . .log파일 에서 Gnuplot의 오류를 볼 수도 있습니다.

"test.pgf-plot.gnuplot" line 2: undefined variable: set

set문제가 있는 곳은 set parametric.

이 문제를 해결하려면 다음 parametric대신 TikZ 쪽의 키를 사용할 수 있습니다 set parametric.

% arara: pdflatex: {shell: yes}
\documentclass[margin=3mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest, width=7cm}
\begin{document}
\begin{tikzpicture}[font=\footnotesize,]
\begin{axis}[title={Works not - what do I have to set?}]
\addplot3[]
gnuplot [parametric=true] {
cos(u)*cos(v),sin(u)*cos(v),sin(v) 
};
\end{axis}
\end{tikzpicture}
\end{document}

또는 raw gnuplot. 이 경우 pgfplots전달되는 대신 Gnuplot 코드에서 도메인 및 샘플 크기를 설정해야합니다 .

% arara: pdflatex: {shell: yes}
\documentclass[margin=3mm, tikz]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest, width=7cm}
\begin{document}
\begin{tikzpicture}[font=\footnotesize,]
\begin{axis}[title={Works not - what do I have to set?}]
\addplot3[]
gnuplot [raw gnuplot] {
set parametric;
splot cos(u)*cos(v),sin(u)*cos(v),sin(v) 
};
\end{axis}
\end{tikzpicture}
\end{document}