
Tikz를 사용하여 그림을 만들려고 하는데 "크기가 너무 큼" 오류가 발생합니다. 한계에서 0과 1에 접근하는 함수를 차트로 작성하려고 하는데 Tikz가 이를 정확하게 처리할 수 없기 때문인 것 같습니다. Tikz를 작동시키는 방법에 대한 팁이 있나요?
\documentclass{article}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 1},height=6cm,width=6cm,xmin=0.5,ymin=0.5,ymax=1,xmax=1,samples=500,ytick={0.5,1},xtick={0.5,1}, xlabel={$v_1$},
axis lines=left]
\nextgroupplot[title={}, ylabel={$x_1$}]
\addplot[blue,]{min(1,(\x/(2*(1-min(1,\x)))))};\label{plots:plot1};
\addplot[black] {((3*\x-1)/(2*\x))};\label{plots:plot2};
\addplot[black, dashed] {(\x)};\label{plots:plot3};
\nextgroupplot[title={}, ylabel={$x_2$}]
\addplot[blue]{(max((2-3*\x)/(2-2*\x),0))};\label{plots:plot1}; \addplot[black] {(1-\x)/(2*\x)};\label{plots:plot2};
\addplot[black, dashed] {(1-\x)};\label{plots:plot3};
\coordinate (top) at (rel axis cs:0,1);% coordinate at top of the first plot
\coordinate (bot) at (rel axis cs:1,0);% coordinate at bottom of the last plot
\end{groupplot}
\path (top-|current bounding box.west)--
node[anchor=south,rotate=90] { }
(bot-|current bounding box.west);
% legend
\path (top|-current bounding box.south)--
coordinate(legendpos)
(bot|-current bounding box.south);
\matrix[
matrix of nodes,
anchor=north,
draw,
inner sep=0.2em,
draw
]at([yshift=-1ex, xshift=-17ex]legendpos)
{
\ref{plots:plot1}& F(x)&[5pt]
\ref{plots:plot2}& G(x)&[5pt]
\ref{plots:plot3}& H(x)& \\};
\end{tikzpicture}
\end{document}
답변1
아래 코드를 시도해보고 LuaLaTeX
출력을 얻으려면 실행해야 합니다.
\documentclass{article}
\usepackage{pgfplots,tikz}
\usetikzlibrary{matrix,calc,arrows,shapes,positioning}
\usepgfplotslibrary{groupplots}
\pgfplotsset{compat=1.12}
\begin{document}
\begin{tikzpicture}
\begin{groupplot}[group style={group size= 2 by 1},height=6cm,width=6cm,xmin=0.5,ymin=0.5,ymax=1,xmax=1,samples=500,ytick={0.5,1},xtick={0.5,1}, xlabel={$v_1$},
axis lines=left]
\nextgroupplot[title={}, ylabel={$x_1$}]
\addplot[blue,]{min(1,(\x/(2*(1-min(1,\x)))))};\label{plots:plot1};
\addplot[black] {((3*\x-1)/(2*\x))};\label{plots:plot2};
\addplot[black, dashed] {(\x)};\label{plots:plot3};
\nextgroupplot[title={}, ylabel={$x_2$}]
\addplot[blue]{(max((2-3*\x)/(2-2*\x),0))};\label{plots:plot1}; \addplot[black] {(1-\x)/(2*\x)};\label{plots:plot2};
\addplot[black, dashed] {(1-\x)};\label{plots:plot3};
\coordinate (top) at (rel axis cs:0,1);% coordinate at top of the first plot
\coordinate (bot) at (rel axis cs:1,0);% coordinate at bottom of the last plot
\end{groupplot}
\path (top-|current bounding box.west)--
node[anchor=south,rotate=90] { }
(bot-|current bounding box.west);
% legend
\path (top|-current bounding box.south)--
coordinate(legendpos)
(bot|-current bounding box.south);
\matrix[
matrix of nodes,
anchor=north,
draw,
inner sep=0.2em,
draw
]at([yshift=-1ex, xshift=-17ex]legendpos)
{
\ref{plots:plot1}& F(x)&[5pt]
\ref{plots:plot2}& G(x)&[5pt]
\ref{plots:plot3}& H(x)& \\};
\end{tikzpicture}
\end{document}