TikZ 함수 번호가 너무 큼

TikZ 함수 번호가 너무 큼

사전 분포와 사후 분포를 비교하여 두 개의 베타 분포를 그리고 싶은데 LaTeX에 비해 계수가 너무 큰 것 같나요? 기능을 변경하지 않고 어떻게 수정하나요? Dimension too large및를 포함하여 몇 가지 오류가 있습니다 Number too big.

\documentclass[10pt]{article}  
\usepackage{pgf,tikz}  
\usetikzlibrary{arrows}  
\pagestyle{empty}  
\begin{document}  
\definecolor{qqccqq}{rgb}{0,0.8,0}  
\definecolor{qqttcc}{rgb}{0,0.2,0.8}  
\begin{tikzpicture}[line cap=round,line join=round,>=triangle 45,x=8.333333333333332cm,y=1.0cm]  
\draw[->,color=black] (-0.1,0) -- (1.1,0);  
\foreach \x in {,0.2,0.4,0.6,0.8,1}  
\draw[shift={(\x,0)},color=black] (0pt,2pt) -- (0pt,-2pt) node[below] {\footnotesize $\x$};  
\draw[color=black] (1.04,0.04) node [anchor=south west] { $\theta$};  
\draw[->,color=black] (0,-0.5) -- (0,5.5);    
\foreach \y in {,1,2,3,4,5}    
\draw[shift={(0,\y)},color=black] (2pt,0pt) -- (-2pt,0pt) node[left] {\footnotesize $\y$};  
\draw[color=black] (0pt,-10pt) node[right] {\footnotesize $0$};  
\clip(-0.1,-0.5) rectangle (1.1,5.5);  
\draw[dash pattern=on 1pt off 1pt,color=qqttcc, smooth,samples=100,domain=8.000000000003847E-7:0.9999990727280006] plot(\x,{3682570000*(1-(\x))^(10.67)*(\x)^(21.49)});  
\draw[color=qqccqq, smooth,samples=100,domain=8.000000000003847E-7:0.9999990727280006] plot(\x,{2120.93*(1-(\x))^(2.67)*(\x)^(9.49)});  
\draw (0.49,4.17) node[anchor=north west] {$g(\theta|D)$};  
\draw (0.89,3.23) node[anchor=north west] {$g(\theta)$};  
\end{tikzpicture}  
\end{document}

답변1

특히 곡선 배열이 있는 경우 그래프 그리기에 매우 강력하므로 점근선 옵션도 고려하세요. 아래 예는 함수를 배열로 구성합니다. 색상, 너비, 레이블 등과 같은 다른 속성은 배열로 구성할 수도 있고 하나의 루프로 그릴 수도 있습니다. 또한 y레이블의 -좌표는 곡선의 한 점으로 계산됩니다. asy-plot.tex

\documentclass{standalone}
\usepackage{lmodern}
\usepackage[inline]{asymptote}
\begin{document}  
\begin{asy}
import graph;
size(250,170,IgnoreAspect);
real xMin=8.000000000003847e-7;
real xMax=0.9999990727280006;
int n=100;

typedef real Func(real x);

Func[] f={
   new real(real x){return 3682570000*(1-x)^(10.67)*x^(21.49);},
   new real(real x){return 2120.93*(1-x)^2.67*x^9.49;},
};

pen dashed=linetype(new real[] {4,3}); // set up dashed pattern

pen[] curvePen={rgb(0,0.8,0)+dashed,rgb(0,0.2,0.8),};
real[] curveWidth={1.6pt,2pt};
Label[] lab={
  Label("$g(\theta\,\vert D)$",(0.6,f[0](0.6))),
  Label("$g(\theta)$",(0.9,f[1](0.9))),
};

for(int i=0;i<f.length;++i){
  draw(graph(f[i], xMin ,xMax ,n),curvePen[i]+curveWidth[i]);
  label(lab[i],UnFill(2pt));
}

xaxis("",0,1.049,RightTicks(Step=0.1,step=0.05),EndArrow);
yaxis("",0,5-0.15,LeftTicks(Step=1,step=0.5),EndArrow);
\end{asy}
\end{document}

로 처리하려면 latexmk파일을 생성하세요 latexmkrc.

sub asy {return system("asy '$_[0]'");}
add_cus_dep("asy","eps",0,"asy");
add_cus_dep("asy","pdf",0,"asy");
add_cus_dep("asy","tex",0,"asy");

그리고 실행하십시오 latexmk -pdf asy-plot.tex. 결과는 다음과 같습니다.

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

답변2

직접적인 대답은 아니지만 나는 pgfplots이것을 위해 사용할 것입니다. 적절한 지점에서 라이브러리를 켜면 fpu문제가 해결될 수도 있지만 축 등을 그릴 필요가 없으므로 이것이 훨씬 더 편리하다고 생각합니다.

\documentclass{standalone}
\usepackage{pgfplots}
\usetikzlibrary{arrows}  
\definecolor{qqccqq}{rgb}{0,0.8,0}
\definecolor{qqttcc}{rgb}{0,0.2,0.8}
\begin{document}  
\begin{tikzpicture}[line cap=round,line join=round]
\begin{axis}[
    axis lines=middle,
    every inner x axis line/.append style={-triangle 45},
    every inner y axis line/.append style={-triangle 45},
    enlargelimits]
\addplot[dash pattern=on 1pt off 1pt,color=qqttcc, smooth,samples=100,domain=8.000000000003847E-7:0.9999990727280006] plot(\x,{3682570000*(1-(\x))^(10.67)*(\x)^(21.49)});  
\addplot[color=qqccqq, smooth,samples=100,domain=8.000000000003847E-7:0.9999990727280006] plot(\x,{2120.93*(1-(\x))^(2.67)*(\x)^(9.49)});  
\node at (axis cs:0.49,4.17) {$g(\theta|D)$};  
\node at (axis cs:0.89,3.23) {$g(\theta)$};  
\end{axis}
\end{tikzpicture}
\end{document}

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

편집과 관련된 문제는 도메인 끝으로 갈수록 숫자가 너무 작아진다는 것입니다. y축의 로그 축으로 전환했음을 보여주기 위해. TeX는 해당 정밀도를 처리할 수 없지만 fpuTikZ의 라이브러리 또는 pgfplots기본적으로는 어느 정도까지 처리할 수 있으며 0으로 나누기 오류로 종료됩니다. 그렇지 않으면 TeX 외부에서 지시문을 실행할 pgfplots수 있습니다 . gnuplot매뉴얼을 확인하십시오. pgfplots또한 사용하는 모든 색상을 정의할 필요는 없습니다. xcolor는 매우 강력한 패키지이므로 색상 혼합 기능을 사용할 수 있습니다. 다음은 사용하기 쉬운 방법을 보여주기 위해 축 설정 등이 없는 최소한의 예입니다.

\documentclass{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.8} % The latest version on CTAN
\begin{document}  
\begin{tikzpicture}
\begin{semilogyaxis}
\addplot[red,smooth,samples=100,domain=0.0:1.0] {(3.1415926535*sin(((x)*3.1415926535)*180/pi))/2};  
\addplot[green!80!black, smooth,samples=100,domain=0.0:1.0] {(x)^1^2*(1-(x))^8*sin(((x)*3.1415926535)*180/pi)*1/(3.44*10^(-7))};  
\addplot[blue!80!green, ultra thick,smooth,samples=100,domain=0.0:1.0] {2.718281828^((-((x)-0.58)^2)/(0.1^2*2))/(abs(0.1)*sqrt(3.1415926535*2))};
\end{semilogyaxis}
\end{tikzpicture}
\end{document}

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

관련 정보