pgfplots에 작은 함수 값을 그리는 방법은 무엇입니까?

pgfplots에 작은 함수 값을 그리는 방법은 무엇입니까?

pgfplots에서 두 가지 기능을 시각화하려고 하는데 두 기능이 같은 지점에서 끝나는 주요 메시지를 얻을 수 없습니다. 추가 외부 도구 없이 이 동작을 어떻게 변경할 수 있습니까?

여기 나의 작은 예가 있습니다:

\documentclass[tikz]{standalone}

\usepackage{tikz,pgfplots}
\pgfplotsset{compat=1.8} 

\begin{document}

\begin{tikzpicture}
\begin{axis}[
    xmin=0.0,
    xmax=2,
    ymin=0,
    ymax=1.75,
    axis x line=bottom,
    axis y line=left, 
    xlabel=control parameter $r$,
    ylabel=energy $(J)$, 
    ytick={}, yticklabels={},
    xtick={1},
    xticklabels={1},    
    restrict x to domain=0:2,
    ]   

    \addplot+[smooth,no marks, samples at={1.0,0.999,0.99,0.96,...,0.001,0}] {1.12*(1-x)^0.5};
    \addplot+[smooth, densely dashed, no marks,samples=1000]{1.75*(1-x)^0.5}; 
\end{axis} 
\end{tikzpicture}   

\end{document}

다음 출력으로:

여기에 이미지 설명을 입력하세요

이상적으로는 두 함수 모두 정확히 (1,0)에서 끝나지만 샘플 수가 많거나 명시적으로 x 값을 1.0으로 지정하더라도 근접할 수 없습니다. 대안으로 gnuplot을 사용해 보았지만 다음에 언급된 문제가 발생했습니다.gnuplot으로 pfgplots 정밀도 향상, pgfplots는 gnuplot에서 무한한 좌표를 삭제하지 않습니다.

정확히 1/2의 지수에 대해 sqrt 함수는 더 나은 결과를 생성하지만 이 특별한 경우에만 작동합니다.

어떤 아이디어가 있나요?

답변1

sqrt0을 0.5제곱하는 대신 함수를 사용할 수 있습니다 .

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8} 

\begin{document}
\begin{tikzpicture}
\begin{axis}[
    xmin=0.0,
    xmax=2,
    ymin=0,
    ymax=1.75,
    axis x line=bottom,
    axis y line=left, 
    xlabel=control parameter $r$,
    ylabel=energy $(J)$, 
    ytick=\empty,
    xtick={1},
    xticklabels={1},    
    restrict x to domain=0:2,
    ]   

    \addplot+[smooth,no marks, samples at={1.0,0.999,0.99,0.96,...,0.001,0}] {1.12*sqrt(1-x)};
    \addplot+[smooth, densely dashed, no marks,samples=1000]{1.75*sqrt(1-x)}; 
\end{axis} 
\end{tikzpicture}   

\end{document}

여기에 이미지 설명을 입력하세요

관련 정보