tikz-pgf를 사용하여 Weibull 확률 네트워크(독일어: "Weibullwahrscheinlichkeitspapier")를 구현하려고 합니다.
왼쪽 y축을 자세히 살펴보세요. 로그가 아니고 이중 로그입니다! 이 y축과 이중 로그 그리드를 재현하고 싶습니다.
선형적으로 크기가 조정된 y축은 오른쪽에 보조 y축으로 표시됩니다.
문제는 왼쪽 y축이 대수적으로 두 배 크기 조정된다는 것입니다.왼쪽y축은 다음과 같습니다.
내가 달성하고 싶은 것은 다음과 같습니다.
다음은 y 값에 대한 표입니다.
나는 여기서 시작했다:
암호
\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[
height = 10cm,
width = 15cm,
grid=both,
xmode=log, ymode=log,
xmin=1e0, xmax=1e4,
ymin=1e-2, ymax=1,
]
\end{axis}
\end{tikzpicture}
\end{document}
감사합니다!
답변1
귀하의 질문에 대한 업데이트를 고려했으며 이제 귀하가 원하는 것이 무엇인지 이해했습니다. 이것이 원하는 결과이기를 바랍니다.
- 를 사용하면
y coord trafo
원하는 대로 y축 값을 처리할 수 있습니다. pgfplots가 계산을 시도할 때 문제를 피하기 위해ln
상수 안에 넣었습니다 .1e-4
ln 0
- 두 번째 축(오른쪽 축)에서 계산된 값은 다음 방정식에서 나옵니다. 확률 Pa를 얻으려면 -2, -1.5 등의 y 값을 대체하십시오.
\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[
/pgfplots/y coord trafo/.code=\pgfmathparse{log10(abs(ln(1.-#1+1e-4)))},
scale only axis,
axis y line*=left,
height = 10cm,
width = 15cm,
grid=both,
xmode=log,
xmin=1e0, xmax=1e4,
ymin=1e-2,ymax=1e0,
ytick={1e-2,3e-2,5e-2,1e-1,3e-1,4e-1,6.3212055883e-1,8e-1,9e-1,9.9e-1,9.99e-1,1e0},
yticklabels={0.01,0.03,0.05,0.1,0.3,0.4,0.63,0.8,0.9,0.99,0.999,1},
xlabel=$t\,(\log)$,
ylabel=$P_\mathrm{A}$,
]
\end{axis}%
\begin{axis}[
/pgfplots/y coord trafo/.code=\pgfmathparse{log10(abs(ln(1.-#1+1e-4)))},
scale only axis,
axis y line*=right,
axis x line=none,
height = 10cm,
width = 15cm,
grid=both,
xmode=log,
xmin=1e0, xmax=1e4,
ymin=1e-2,ymax=1e0,
ytick={1e-2,0.03112800566,1e-1,0.27110658589,0.63212055883,0.95767078038,1e0},
yticklabels={-2,-1.5,-1,-0.5,0,0.5,1},
ylabel=$\log\left(-\ln(1-P_\mathrm{A})\right)$,
]
\end{axis}
\end{tikzpicture}
\end{document}
왼쪽 축에 백분율을 표시하려면 다음 코드를 복사하세요.
\documentclass[margin=1cm]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=newest}
\begin{document}
\begin{tikzpicture}
\pgfplotsset{set layers}
\begin{axis}[
/pgfplots/y coord trafo/.code=\pgfmathparse{log10(abs(ln(1.-#1+1e-4)))},
scale only axis,
axis y line*=left,
height = 10cm,
width = 15cm,
grid=both,
xmode=log,
xmin=1e0, xmax=1e4,
ymin=1e-2,ymax=1e0,
ytick={1e-2,3e-2,5e-2,1e-1,3e-1,4e-1,6.3212055883e-1,8e-1,9e-1,9.9e-1,9.99e-1,1e0},
yticklabels={1.0,3.0,5.0,10.0,30.0,40.0,63.2,80.0,90.0,99.0,99.9,100.0},
xlabel=$t\,(\log)$,
ylabel=$P_\mathrm{A}\,(\%)$,
]
\end{axis}%
\begin{axis}[
/pgfplots/y coord trafo/.code=\pgfmathparse{log10(abs(ln(1.-#1+1e-4)))},
scale only axis,
axis y line*=right,
axis x line=none,
height = 10cm,
width = 15cm,
grid=both,
xmode=log,
xmin=1e0, xmax=1e4,
ymin=1e-2,ymax=1e0,
ytick={1e-2,0.03112800566,1e-1,0.27110658589,0.63212055883,0.95767078038,1e0},
yticklabels={-2,-1.5,-1,-0.5,0,0.5,1},
ylabel=$\log\left(-\ln(1-P_\mathrm{A})\right)$,
]
\end{axis}
\end{tikzpicture}
\end{document}