我目前正在进行特征值分析,为此我不使用普通网格,而是使用 s 网格(恒定阻尼因子和固有频率的网格)。我使用该函数matlab2tikz
导出我的图形,但我对该函数生成这种网格的方式有问题。所以,我正在尝试使用 TikZ 制作自己的 s 网格。
经过一番研究,我没有找到任何已经制作的东西TikZ
(有一些关于 Z 网格的帖子……)。到目前为止,我取得了一些进展……尽管我也遇到了一些问题(下面提供了代码)。
第一的:为了绘制圆周,我将函数一分为二,将其视为一个函数。不过,我不明白为什么我的函数在 y = 0 之前不求值。最让我困扰的是半径的值不一致。
第二:如您所见,我的 for 节点$\xi$
在打印之前未进行评估。我尝试了许多语法,但都没有成功。显然,在 axis 环境内对其进行评估存在问题。还与此节点有关,因为值可以大于绘图限制,所以中间点可能位于绘图之外,不显示文本。考虑到绘图限制,是否可以有一个中间点?
第三个(也是最后一个):因为这个网格将应用于不同的图形,有没有方法将其表示为$xi$
和的函数(基本上是和域$\omega$
的值的函数)?pgfplotsinvokeforeach
抱歉,帖子太长了,谢谢大家!
\documentclass[border=2pt]{standalone}
\usepackage{tikz}
\usepackage{pgfplots}
\begin{document}
\begin{tikzpicture}
\begin{axis}[%
xmin=-10,
xmax=0,
ymin=-10,
ymax=10,
samples=500]
\coordinate (origin) at (axis cs: 0,0);
\coordinate (lim1) at (axis cs:{-(tan(asin(0.05)))*10},10);
\coordinate (lim2) at (axis cs:{-(tan(asin(0.05)))*10},-10);
\coordinate (ymax) at (axis cs:0,10);
\coordinate (ymin) at (axis cs:0,-10);
\draw[dashed,red] (origin) -- (lim1) node[font=\tiny,anchor=north,midway,sloped,inner sep=0pt] {$\xi=5\%$};
\draw[dashed,red] (origin) -- (lim2) node[font=\tiny,anchor=south,midway,sloped,inner sep=0pt] {$\xi=5\%$};
\draw[draw=red,fill=red,opacity=0.2] (origin) -- (lim1) -- (ymax) -- cycle;
\draw[draw=red,fill=red,opacity=0.2] (origin) -- (lim2) -- (ymin) -- cycle;
\pgfplotsinvokeforeach{4,10,25}{
\coordinate (p1) at (axis cs:{-#1},10);
\coordinate (p2) at (axis cs:{-#1},-10);
\draw[dashed] (origin) -- (p1) node[font=\tiny,anchor=north,midway,sloped,inner sep=0pt] {$\xi=${100*cos(atan(-X/Y))}\%};
\draw[dashed] (origin) -- (p2) node[font=\tiny,anchor=south,midway,sloped,inner sep=0pt] {$\xi=${100*cos(atan(-X/Y))}\%};
}
\pgfplotsinvokeforeach {2,4,6,8,10}{
\addplot[domain=0:10, dashed] (-x,{sqrt(#1^2-x^2)}) node [at end,anchor=south,font=\tiny, inner sep=0pt,fill=white,]{#1};
\addplot[domain=0:10, dashed] (-x,-{sqrt(#1^2-x^2)});
}
\addplot [color=red, draw=none, mark size=2pt, mark=diamond*, mark options={solid,fill=red}]
table[row sep=crcr]{%
-0.062 5.971\\
-0.062 -5.971\\
-0.100 0.000\\
-0.100 0.000\\
-0.142 0.000\\
-0.185 0.000\\
-2.539 0.000\\
-3.139 0.000\\
-4.763 0.000\\
-8 0.000\\
};
\end{axis}
\end{tikzpicture}
\end{document}