我想自动完成根据输入文件中的值绘制简单图表的过程。我运行模拟并经常绘制此类图表以直观显示参数。
我使用了以下代码模板,但\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}