如何绘制带有轴、箭头和标签的线性函数?

如何绘制带有轴、箭头和标签的线性函数?

我已经花了几个小时来创建这个图形 - 但没有成功。

我尝试过不同类型的tikzpstricksusepackages multido

x_2从 a 到、dx_1p_1到 的线c应为虚线。

如果可以在 轴处添加x箭头y

在此处输入图片描述

\documentclass[a4paper,12pt,oneside]{article}
\usepackage[english]{babel}
\usepackage{tikz}
\usepackage{pgf}
\usetikzlibrary{shapes,arrows,positioning,calc} 
\usepackage{tabu}
\usepackage{hyperref}
\usepackage{longtable}
\usepackage{array}
\usepackage{siunitx,multirow,tabularx,booktabs}
\usepackage{amsmath,amssymb,bm,mathtools}

\begin{document}
\begin{center}
\begin{tikzpicture}[scale=6]
\draw[->] (0,0) -- (0,1) node[left] {$P/X$}; 
\draw[->] (0,0) -- (1,0) node[below] {$X/t$};
\end{tikzpicture}
\end{center}

\end{document}

答案1

\documentclass{article}
\usepackage{tikz}


\begin{document}
\begin{tikzpicture}
\draw [ultra thick,-latex] (0,0)--(10,0) node [right, above]{$x/t$};
\draw [ultra thick,-latex] (0,0)--(0,12) node [right]{$P/X$};
\coordinate (X2) at (4,0);
\coordinate (X1) at (6,0);
\coordinate (P1) at (0,5);
\coordinate (P2) at (0,7);
\coordinate (b)  at (4,5);
\coordinate (d)  at (6,7);
\coordinate (a)  at (4,7);
\coordinate (c)  at (6,5);
\node at (X2) [below] {$X2$};
\node at (X1) [below] {$X1$};
\node at (P2) [left] {$P2$};
\node at (P1) [left] {$P1$};
\draw [dashed] (a)node [above right] {$a$}--(X2);
\draw [dashed] (d)node [above right] {$d$}--(X1);
\draw [dashed] (P1)--(c)node [above right] {$c$};
\draw  (P2)--(d)node [above right] {$d$};
\node at (b) [above right]{$b$};
\draw (d)--++(0:2)node [right] {$ MC=AC$};
\draw (c)--(a)--++(135:5.65);
\draw (c)--++(-45:2) node [below] {$D$};
\end{tikzpicture}

\end{document}

在此处输入图片描述

答案2

PSTricks 解决方案使用pst-plot包裹:

\documentclass{article}

\usepackage{pst-plot}

\begin{document}

\begin{pspicture}(-0.5,-0.45)(8.25,8) % values found manually
  \psaxes[ticks = none, labels = none]{->}(0,0)(-0.2,-0.2)(7.5,7.5)[$X/t$,0][$P/X$,90]
  \psyTick(0){0}
  \psline(0,7)(5,2)
  \uput[270](5,2){$D$}
  \psline(0,5)(5,5)
  \uput[0](5,5){$\mathrm{MC} = \mathrm{AC}$}
 \psset{linestyle = dashed}
  \psline(2,5)(2,0)
  \psline(3.5,5)(3.5,0)
  \psline(0,3.5)(3.5,3.5)
  \uput[45](2,5){$a$}
  \uput[45](2,3.5){$b$}
  \uput[45](3.5,3.5){$c$}
  \uput[90](3.5,5){$d$}
  \uput[180](0,3.5){$P_{1}$}
  \uput[180](0,5){$P_{2}$}
  \uput[270](2,0){$X_{2}$}
  \uput[270](3.5,0){$X_{1}$}
\end{pspicture}

\end{document}

输出

答案3

您可以自动化交叉操作以使图形在以下解决方案中更加灵活。

您需要加载 TikZ 库calcintersections使用

\usetikzlibrary{intersections,calc}

然后{tikzpicture}你手动设置坐标系

\draw [thick,->] (0,0)--(10,0) node [right, above]{$X/t$};
\draw [thick,->,name path=y axis] (0,0)--(0,12) node [right]{$P/X$};
\node at (0,0) [below left] {$0$};

下一步是定义轴上的坐标。在这里,您可以使用形状coordinate将节点名称用作坐标,而不必考虑找到正确的锚点。并label用于排版图片中的名称。

\node (X2) at (4,0) [coordinate,label=below:$X_2$] {};
\node (X1) at (6,0) [coordinate,label=below:$X_1$] {};
\node (P1) at (0,5) [coordinate,label=left:$P_2$] {};
\node (P2) at (0,7) [coordinate,label=left:$P_1$] {};

现在是时候绘制虚线了。您可以使用以下语法来获取两个坐标的垂直交点:(A |- B)(A -| B)其中AB必须是两个有效坐标(如果像则用括号括起来(1,2))。我们再次添加带有标签的节点作为坐标以供以后参考。从 P2 开始的线使用shorten >负值将线延长 2 厘米。

\draw [dashed,shorten >=-4cm] (P2) -- (P2 -| X2)
    node (a) [coordinate,label=above:$a$] {}
    node [right=4cm] {$MC=AC$};
\draw [dashed] (X2) -- (a);
\draw [dashed] (P1) -- (P1 -| X1)
    node (c) [coordinate,label=above right:$c$] {};
\draw [dashed] (X1) -- (P2 -| X1)
    node (d) [coordinate,label=above:$d$] {};
\node at (P1 -| X2) (b) [coordinate,label=above right:$b$] {};

最后要做的是绘制图形;因此,您可以定义一个名为的辅助路径graph——请记住,y 轴也是命名的。使用calc库,您可以再次说出坐标的位置,并且($(A)!f!(B)$)是位于通过和长度为*( – )的线上的因子。该线必须与 y 轴相交,因此您可以添加选项以查看路径。ABfABf(B)(A)draw,red

\path [name path=graph] (c) -- ($(c)!3.1!(a)$);

然后利用交点绘制图形

\draw [thick, name intersections={of=y axis and graph,by=A}] (A) -- ($(a)!2!(c)$)
    node (D) [coordinate,label=below:$D$] {};

这会给你这个结果:

结果

现在您可以更改P1P2X1X2其余部分也会相应更改。

完整代码:

\documentclass{article}

\usepackage{tikz}
\usetikzlibrary{intersections,calc}

\begin{document}
\begin{tikzpicture}
    % axes
    \draw [thick,->] (0,0)--(10,0) node [right, above]{$X/t$};
    \draw [thick,->,name path=y axis] (0,0)--(0,12) node [right]{$P/X$};
    \node at (0,0) [below left] {$0$};
    % coordinates and labels
    \node (X2) at (4,0) [coordinate,label=below:$X_2$] {};
    \node (X1) at (6,0) [coordinate,label=below:$X_1$] {};
    \node (P1) at (0,5) [coordinate,label=left:$P_2$] {};
    \node (P2) at (0,7) [coordinate,label=left:$P_1$] {};
    % intersections
    \draw [dashed,shorten >=-4cm] (P2) -- (P2 -| X2)
        node (a) [coordinate,label=above:$a$] {}
        node [right=4cm] {$MC=AC$};
    \draw [dashed] (X2) -- (a);
    \draw [dashed] (P1) -- (P1 -| X1)
        node (c) [coordinate,label=above right:$c$] {};
    \draw [dashed] (X1) -- (P2 -| X1)
        node (d) [coordinate,label=above:$d$] {};
    \node at (P1 -| X2) (b) [coordinate,label=above right:$b$] {};
    % graph
    \path [name path=graph] (c) -- ($(c)!3.1!(a)$);
    \draw [thick, name intersections={of=y axis and graph,by=A}] (A) -- ($(a)!2!(c)$)
        node (D) [coordinate,label=below:$D$] {};
\end{tikzpicture} 
\end{document}

答案4

仅用于使用 PSTricks 进行打字练习。

\documentclass[pstricks,border=12pt,12pt]{standalone}
\usepackage{pst-plot,pst-eucl}
\psset
{
    algebraic,
    PointSymbol=none,
    saveNodeCoors,
}
\def\y{5*(-x/6+1)}

\begin{document}
\begin{pspicture}(-.5,-.5)(7,6)
    \pstGeonode[PosAngle={-135,-90}]{O}(2,0){X_2}(4,0){X_1}
    \pstGeonode[PosAngle=45](*N-X_2.x {\y}){a}(*N-X_1.x {\y}){c}
    \pstGeonode[PosAngle={45,45,180}](a|c){b}(c|a){d}(0,0|c){P_1}(0,0|a){P_2}
    \foreach \pt in {a,...,d}{\psCoordinates[dotsize=0](\pt)}
    \psaxes[ticks=none,labels=none](0,0)(6,5)[$X/t$,0][$P/X$,90]
    \psplot{1}{5}{\y}
    \pcline[nodesepB=-1](a)(d)\ncput[npos=1.4]{$MC=AC$}
\end{pspicture}
\end{document}

在此处输入图片描述

相关内容