关于在不知道函数的情况下重新创建图的问题

关于在不知道函数的情况下重新创建图的问题

我仍在学习如何绘制函数。我目前正在使用 pgfplots 包,但如果您推荐其他包,请告诉我。我正在尝试从我找到的 PDF 中重新创建以下图像。

在此处输入图片描述

由于没有给出函数,有没有绘制曲线的好方法?此外,如何将刻度添加到 2 和 10 以及虚线中?非常感谢您的帮助。我有在 Tex 中编写数学公式等的经验,只是没有像这样的图表。这似乎比较基础,所以我希望将其添加到我的 Tex 知识中。

答案1

以下是有关文档的一些提示。

  1. 教程“PGF/TikZ - LATEX 图形”,https://www.math.uni-leipzig.de/~hellmund/LaTeX/pgf-tut.pdf

查看 egp4(起始代码)、p.8(曲线)、p.10(箭头、虚线图案)、p.12(节点,这是一种放置文本标签的方式)。

  1. 有关更多详细信息,请参阅 CTAN tikz,https://ctan.org/pkg/pgf?lang=en。简短的介绍将向您介绍一些基础知识,而 PGF 手册则很长。我建议先浏览后者,然后再寻找细节,例如有关曲线的内容。

如果您能尽快分享您的尝试和挣扎,我们会很高兴:),因为谈论具体的代码总是更容易,也更适合这个群体。

附言:您可能还想查看右侧的“相关”链接列;-) // 请也在此组中搜索,例如曲线,或单击您的标签。

答案2

MS-SPO 提供了一些很好的链接和建议。这是一个起点,只是为了向您展示这种类型的绘图可以完成得有多快。请注意,这不是最好的选择,因为它并不完全准确,但它只是被视为一个起点:

快速曲线

\documentclass[tikz,border=3.14mm]{standalone}
\usetikzlibrary{arrows.meta}

\begin{document}
    \begin{tikzpicture}[scale=0.5,>={Latex[scale=1.5]},line width=1pt,font=\large]
        \draw[->] (-5,0) -- (30,0);
        \draw[->] (0,-5) -- (0,25);
        
        \draw (-5,15.5) to[out=-45,in=180,looseness=.8] (20,0) to[out=0,in=-100,looseness=.6] (30,25);
        \draw[dotted] (10,0) node[below] {10}  |- (0,3) node[left] {2}; 
    \end{tikzpicture}
\end{document}

答案3

曲线pgfplots是通过三个点(起点、最小值和终点)的平滑线,其坐标根据给定的图片估算:

\documentclass[border=3.141592]{standalone}
\usepackage{pgfplots}
\pgfplotsset{compat=1.18}
\usetikzlibrary{arrows.meta,
                intersections}

\begin{document}
    \begin{tikzpicture}%[>={Straight Barb[scale=0.8]}]
\begin{axis}[
    axis lines=center,
    xlabel = $T$,   ylabel = $C$,
    label style = {anchor=north east},
    ticks=none,
    xmax=30, ymin=-1,
    no markers,
            ]
\addplot + [thick, smooth, name path=A]
    coordinates {(-5,7) (20,0.06) (30,12)};
\path[name path=B]  (0,2) -- (20,2);
\draw   [name intersections={of=A and B, by={x}}, densely dashed] % <---
        (0,2) node[left] {2} -| (0,0 -| x) node[below] {10};
\node[below left] at (0,0) {0};
\end{axis}
    \end{tikzpicture}
\end{document}

在此处输入图片描述

编辑:由于smooth宏中的舍入误差,曲线与轴线的交叉T处约为线宽。为了使它只接触它,第二个坐标应该向上移动一点,例如0.06。非常感谢@Sebastiano 指出这一点。

相关内容