对于我的课程,我一直试图在史密斯图上绘制恒定电阻和电抗曲线。虽然后者看起来很简单,但我能想到的唯一方法是绘制一组间距很近的点,这会占用大量内存。我的问题是:
- 有没有有效的方法来绘制恒定电阻曲线(在本例中为红色和橙色),就像电抗曲线(蓝色)一样?
- 有没有办法将蓝色(电抗)曲线的起点移到与红色曲线相交的点?
\documentclass[preview]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\usepgfplotslibrary{smithchart}
\pgfplotsset{compat=1.11}
\begin{document}
\begin{tikzpicture}
\begin{smithchart}
% Reactance plot
\addplot[domain=0:90, samples=600, color=blue] {.5};
% Resistance plot - orange
\foreach \x in {.5, .51,...,5}
{\edef\temp{\noexpand\addplot+[mark=*,
mark options={solid},color={orange},mark size=.2,line width=1] coordinates { (.5,\x) };}\temp}
% Resistance plot - red
\foreach \x in {0, .01,...,.5}
{\edef\temp{\noexpand\addplot+[mark=*,
mark options={solid},color={red},mark size=.2,line width=1] coordinates { (1,\x) };}\temp}
\end{smithchart}
\end{tikzpicture}
\end{document}
生成以下输出:
谢谢!
答案1
我不太明白这个问题。但是,您关心的问题之一似乎是编译时间。此代码在很短的时间内重现了您的输出。(使用\pgfplotsinvokeforeach
不带这些\edef
内容已经可以大大加快速度,但下面的速度更快。)
\documentclass[preview]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{smithchart}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{smithchart}
% Reactance plot
\addplot[domain=0:90, samples=600, color=blue] {.5};
% Resistance plot - orange
\addplot+[mark=*,only marks,samples at={.5, .51,...,5},
mark options={solid},color={orange},mark size=.2,line width=1](.5,x) ;
% Resistance plot - red
\addplot+[mark=*,only marks,samples at={0, .01,...,.5},
mark options={solid},color={red},mark size=.2,line width=1] (1,x) ;
\end{smithchart}
\end{tikzpicture}
\end{document}
但我真的不明白为什么你不做类似的事情
\documentclass[preview]{standalone}
\usepackage{pgfplots}
\usepgfplotslibrary{smithchart}
\pgfplotsset{compat=1.17}
\begin{document}
\begin{tikzpicture}
\begin{smithchart}[samples=181,line cap=round,smooth]
% Reactance plot
\addplot[domain=0:20, color=blue] (x,.5);
% Resistance plot - orange
\addplot+[no marks,domain=.5:5,
color={orange},line width=1](.5,x) ;
% Resistance plot - red
\addplot+[no marks,domain=0:.5,
color={red},line width=1] (1,x) ;
\end{smithchart}
\end{tikzpicture}
\end{document}