如何输入等温线图片中显示的图表?

如何输入等温线图片中显示的图表?

具有一些绝热线段的等温线 PV 图

我怎样才能重新创建这样的图表?用线段来表示,而不一定用点(V_2,P_5,T_5)...等。

答案1

正如一些评论所说,我们首先想看看你自己的尝试。但是,由于此图涉及一些有趣的方面,我将勾勒出一条通往最终图的路径。顺便说一句,这或多或少是绘制图纸的过程。

在哪里可以找到更多

我建议浏览或阅读 Tikz 手册中的教程部分,htmlpdf。还查找我正在使用的所有相关 Tikz 命令。

基本思想

我们先来看一下基本思想:

  • 画出轴线
  • 画出下方的曲线
  • 指出你需要注意的点
  • 连接下方曲线上方的点

斧头:没什么奇怪的……只是画出来而已。

    % ~~~ axes ~~~
    \draw[->] (0,0) -- (5,0);
    \draw[->] (0,0) -- (0,5);

现在,下面的曲线看起来很复杂,但当你理解了 Tikz 的路径概念后就不会了。基本上,你在两点之间画一条线\draw (1,3) -- (4,1);。要使它弯曲,一种方法是只需--用替换to[out=,in=],并指定出射角和入射角。路径以 开头\draw,以 结尾;。所以让我们在这条路径结束之前再做一点操作。node在最后绘制的坐标后放置一个以放置 T1 标签。node在​​起点和终点之间插入两个 s,我们只会使用它们的坐标(A)和(B),并使用 微调它们在这个路径上的位置。请观察路径内[pos=]掉落的。\

    % ~~~ lower curve: a path with many actions ~~~~~   
    \draw (1,3) to[out=-60,in=170]  % start point, towards ...
    node[pos=.8] (A) {A}            % basically, store coordinates
    node[pos=.6] (B) {B}            % (A) and (B)
    (4,1) node[anchor=west]{$T_1$}  % end point + some node as label    
    ;                               % end of this path

我们需要在 (B) 上方添加另一个点 (C),因此我们再添加一个\node,使用[yshift=]

    % ~~~ put a node//coordinate above (B) ~~~
    \node (C) at ([yshift=6mm]B) {C};

最后,我们再次用曲线连接(A)、(C)和(B):

    % ~~~ connect A, C and B ~~~~~~~~~
    \draw (A) to[out=140,in=-70] (C) -- (B);

基本理念

改进

这些是更改和附加内容:

  • 定义一些样式:crd用圆圈渲染虚拟节点,ln对于线
  • 记住coordinate (X) 沿 x 轴的顺序
  • 从节点 A、B 和 C 中删除文本并使用crd样式
  • 用箭头和标签绘制(label)
  • 重新利用(X)计算(B)下的坐标(V4),在(B)下\node打勾\draw

对于 shifted arrow您的行,有几种方法可以做到这一点。 我使用了惰性变体,以下是其他选项:

  • 省略箭头
  • 使用装饰库
  • 在 A 和 B 之间放置一个中间点(如果需要,调整角度)
  • ETC。

改进

完整代码

此代码将创建两页(每个 tikzpicture 环境一页)具有调整页面几何形状的图纸。

\documentclass[10pt,border=3mm,tikz]{standalone}

\begin{document}
 % ~~~ (I) basic ideas ~~~~~~~~~~~~~~~
 \begin{tikzpicture}
    % ~~~ axes ~~~
    \draw[->] (0,0) -- (5,0);
    \draw[->] (0,0) -- (0,5);
    
    % ~~~ lower curve: a path with many actions ~~~~~   
    \draw (1,3) to[out=-60,in=170]  % start point, towards ...
    node[pos=.8] (A) {A}            % basically, store coordinates
    node[pos=.6] (B) {B}            % (A) and (B)
    (4,1) node[anchor=west]{$T_1$}  % end point + some node as label    
    ;                               % end of this path
    
    % ~~~ put a node//coordinate above (B) ~~~
    \node (C) at ([yshift=6mm]B) {C};
    
    % ~~~ connect A, C and B ~~~~~~~~~
    \draw (A) to[out=140,in=-70] (C) -- (B);
    
 \end{tikzpicture}
 
 
 
 % ~~~ (II) fine print ~~~~~~~~~~~~~~~
 \begin{tikzpicture}[   % some self-defined styles
    crd/.style={minimum size=1mm,       % puts the dots
                inner sep=0pt,circle,draw,fill},
    ln/.style={blue, line width=1.5pt},
 ]
    % ~~~ axes ~~~
    \draw[->] (0,0) -- (5,0) coordinate (X);
    \draw[->] (0,0) -- (0,5);
    
    % ~~~ lower curve: a path with many actions ~~~~~   
    \draw (1,3) to[out=-60,in=170]  % start point, towards ...
    node[pos=.8,crd] (A) {}         % basically, store coordinates
    node[pos=.6,crd] (B) {}         % (A) and (B)
    (4,1) node[anchor=west]{$T_1$}  % end point + some node as label    
    ;                               % end of this path
    
    % ~~~ put a node//coordinate above (B) ~~~
    \node[crd] (C) at ([yshift=6mm]B) {};
    
    % ~~~ connect A, C and B ~~~~~~~~~
    \draw[ln,->] (A) to[out=140,in=-70] (C);
    \draw[ln]    (C) -- (B);
    
    % ~~~ put some label ~~~~~~~~~~~
    \draw[<-] (C) -- +(45:15mm) node[anchor=west] {$(V_4, P_4, T_4)$};
    
    % ~~~ perpendicular below points ~~~~~~~
    \coordinate           (V4) at (B |- X); % projection onto x-axis
    \node[yshift=-3mm] at (V4) {$V_4$};     % the label
    \draw (V4) -- +(0,.2);                  % the tick
    
 \end{tikzpicture}
\end{document}

相关内容