我有以下代码,用于绘制三条双曲线和一条对角线。各种曲线的标签显示重叠的文本。我不知道如何避免文本重叠。如有任何建议,我将不胜感激。
\usepackage{tikz}
\usepackage{pgfplots}
\pgfkeys{/pgf/declare function={arcsinh(\x) = ln(\x + sqrt(\x^2+1));}}
\begin{figure}
\begin{center} \resizebox{!}{5 in}{
\begin{tikzpicture}%[domain=0:4]
\draw[very thin,color=gray] (0,-3.9) grid (5.9,3.9);
\draw[->] (0,0) -- (6.2,0) node[right] {$x$};
\draw[->] (0,-3.9) -- (0,4.2) node[above] {$t$};
\draw [color=red] plot[domain=-arcsinh(4):arcsinh(4)] ({cosh(\x)},{sinh(\x)}) node[above] {$r=1$};
\draw [color=blue] plot[domain=-arcsinh(2):arcsinh(2)] ({2*cosh(\x)},{2*sinh(\x)}) node[midway,right] {$r=2$};
\draw [color=green] plot[domain=-arcsinh(4/3):arcsinh(4/3)] ({3*cosh(\x)},{3*sinh(\x)}) node[below] {$r=3$};
\draw [color=black] plot[domain=0:4/tanh(1)] ({\x},{tanh(1)*\x}) node[right] {$\omega=1$}; \filldraw ({cosh(1)},{sinh(1)}) circle
(2pt); \filldraw ({2*cosh(1)},{2*sinh(1)}) circle (2pt); \filldraw
({3*cosh(1)},{3*sinh(1)}) circle (2pt); \end{tikzpicture} }
\caption{Polar Coordinates in a Minkowski Space}
\label{fig:Hyperbolas} \end{center} \end{figure}
答案1
您可以使用xshift
和yshift
来优化您的节点定位。
此外,在图中请使用\centering
,而不是环境。center
以下是一个例子:
\documentclass{article}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.14}
\begin{document}
\pgfkeys{/pgf/declare function={arcsinh(\x) = ln(\x + sqrt(\x^2+1));}}
\begin{figure}
\centering
\resizebox{!}{5 in}{
\begin{tikzpicture}%[domain=0:4]
\draw[very thin,color=gray] (0,-3.9) grid (5.9,3.9);
\draw[->] (0,0) -- (6.2,0) node[right] {$x$};
\draw[->] (0,-3.9) -- (0,4.2) node[above] {$t$};
\draw [color=red] plot[domain=-arcsinh(4):arcsinh(4)] ({cosh(\x)},{sinh(\x)})
node[yshift=-.1ex, xshift=-1.7em] {$r=1$};
\draw [color=blue] plot[domain=-arcsinh(2):arcsinh(2)] ({2*cosh(\x)},{2*sinh(\x)})
node[midway,right, yshift=1.2ex, xshift=2.9em] {$r=2$};
\draw [color=green] plot[domain=-arcsinh(4/3):arcsinh(4/3)] ({3*cosh(\x)},{3*sinh(\x)})
node[midway, yshift=1.2ex, xshift=10em] {$r=3$};
\draw [color=black] plot[domain=0:4/tanh(1)] ({\x},{tanh(1)*\x}) node[right] {$\omega=1$};
\filldraw ({cosh(1)},{sinh(1)}) circle (2pt);
\filldraw ({2*cosh(1)},{2*sinh(1)}) circle (2pt);
\filldraw ({3*cosh(1)},{3*sinh(1)}) circle (2pt);
\end{tikzpicture}
}
\caption{\label{fig:Hyperbolas}Polar Coordinates in a Minkowski Space}
\end{figure}
\end{document}