TikZ 复制

TikZ 复制

我正在尝试使用 TikZ 重新创建以下图表。我无法重新创建标记的曲线$\hat{sigma}=0$我正在尝试使用 TikZ 重新创建下图。我无法重新创建标记为和 的$\hat{e}=0$。我知道我可以使用to[in=,out=],但结果看起来都不太正确。还有其他方法可以在 TikZ 中绘制我不知道其闭式方程的曲线吗?图表的其余部分对我来说不是问题。

循环

这是我为一条曲线编写的代码:真是一团糟!

\begin{figure}[H]
\centering
\begin{tikzpicture}[domain=0:10]
\draw[->] (0,0) -- (0,8) node[left]{$\pi$};
\draw[->] (0,0) -- (9,0) node[right]{$e$};
\draw (0,3) to[in=5,out=45] (5,4) to[in=45,out=80] (8,8);
\end{tikzpicture}
\caption{Skott model in $e-\sigma$}
\end{figure}

答案1

如果您的目的只是“给出一个想法”,您可以通过命令controlsplot规范手动绘制曲线\draw

在第一种情况下,你基本上定义了一个贝塞尔曲线分配点,使得第一个点的曲线切线指向第二个点,而最后一个点的切线指向紧接在前一个点。

在第二种情况下,您指定属于曲线的点;您还可以调整最终方面,为选项施加不同的值tension

\documentclass{standalone}
\usepackage{tikz}
\begin{document}
\begin{tikzpicture}
  \draw [->] (0,0) -- (8,0);
  \draw [->] (0,0) -- (0,8);
  \draw [red,thick] (0,2) .. controls (4,2) and (6.5,3) .. (7,7);%<-- This is the first important part
  \foreach \xred/\yred in {0/2,4/2,6.5/3,7/7} {
    \node [circle,fill=red,draw=none,opacity=0.5,minimum size=4pt,inner sep=0] (node\xred-\yred) at (\xred,\yred) {};
    \node [align=center,text width=5cm] (redbox) at (8,1) {Control points for the {\color{red}red} curve.};
    \draw [->,red,shorten >=2pt,dashed] (redbox) -- (\xred,\yred);
  }
  \draw [blue,thick] plot [smooth] coordinates {(0,6) (6,5) (4,3) (6,2)};%<-- This is the other important part
  \foreach \xblue/\yblue in {0/6,6/5,4/3,6/2} {
    \node [circle,fill=blue,draw=none,opacity=0.5,minimum size=4pt,inner sep=0] (node\xblue-\yblue) at (\xblue,\yblue) {};
    \node [align=center,text width=5cm] (bluebox) at (3,8) {These points belong to the ({\color{blue}blue}) curve they define.};
    \draw [->,blue,shorten >=2pt,dashed] (bluebox) -- (\xblue,\yblue); 
  }
\end{tikzpicture}
\end{document}

在此处输入图片描述

答案2

看起来唯一的问题是你混淆了inand的语法out键的语法。设置out=<angle>指定切线与曲线的角度离开前一个坐标,而in=<angle>指定曲线的坐标到达在下一个坐标处。请注意,0 度始终与当前范围内的x坐标对齐。

代码

\documentclass{standalone}

\usepackage{tikz}

\begin{document}
\begin{tikzpicture}[domain=0:10]
\draw[->] (0,0) -- (0,8) node[left]{$\pi$};
\draw[->] (0,0) -- (9,0) node[right]{$e$};
\draw (0,3) to[in=210,out=0] (5,4) to[in=250,out=30] (8,8);
\end{tikzpicture}
\end{document}

输出

在此处输入图片描述

相关内容