自动绘制从输入文件解析的图表

自动绘制从输入文件解析的图表

我想自动完成根据输入文件中的值绘制简单图表的过程。我运行模拟并经常绘制此类图表以直观显示参数。

在此处输入图片描述

我使用了以下代码模板,但\Ip, \w, \ww, \Emin, \Emax, \state应该从输入文件中读取,\w, \ww, \state理想情况下应该是数组(我事先不知道它们的大小),我为其绘制数组的每个元素。箭头应该堆叠在一起。

我该如何修改这个模板?

\documentclass{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\pgfplotsset{compat=1.17}

\begin{document}

\begin{tikzpicture}[thick]
  \def\eV{27.211386}
  \def\Ip{0.793*\eV}
  \def\w{0.45*\eV}
  \def\ww{0.6*\eV}
  \def\Emin{5}
  \def\Emax{10}
  \def\state{-4}

  \begin{axis}[
      axis x line=none,
      axis y line=left,
      xmin=-1, xmax=1,
      ymin=-\Ip-1, ymax=\Emax+1,
      ytick={-\Ip, 0, \Emin, \Emax},
    ]
    \addplot[->, blue] coordinates {(0,-\Ip) (0,-\Ip+\ww)} node[midway,left] {$\Omega$};
    \addplot[->, red] coordinates {(0,-\Ip+\ww) (0,-\Ip+\ww+\w)} node[midway,left] {$\omega$};

    \addplot[black] coordinates {(-0.5,-\Ip) (0.5,-\Ip)} node[right] {$-I_p$};
    \addplot[dashed, thin] coordinates {(-0.5,\state) (0.5,\state)};
    \addplot[thick] coordinates {(-0.5,0) (0.5,0)};
  \end{axis}
\end{tikzpicture}
\end{document}

相关内容