今天小编给大家推荐一个绘制史密斯圆图(Smith Chart) 超方便的工具-pySmithPlot,详细介绍如下:
pySmithPlot库可通过如下方式进行安装:
pip install pysmithplot-fork
即可完成安装,但需要注意的是,安装后在绘制图表会出现错误:
'numpy.float64' object cannot be interpreted as an integer
通过修改如下语句即可:
#修改smithaxes.py文件的1064行如下:
for xs in np.linspace(x0, x1, int(x_div + 1))[1:]:
#1068行如下:
for ys in np.linspace(y0, y1, int(y_div + 1))[1:]:
以上即可完成该库的完全安装。
import numpy as np
import pandas as pd
from smithplot import SmithAxes
data = np.loadtxt("data/s11.csv", delimiter=",", skiprows=1)[::100]
val1 = data[:, 1] + data[:, 2] * 1j
data = np.loadtxt("data/s22.csv", delimiter=",", skiprows=1)[::100]
val2 = data[:, 1] + data[:, 2] * 1j
from matplotlib import rcParams
import matplotlib.pyplot as pp
rcParams.update({"legend.numpoints": 3})
rcParams["font.family"] = "Times New Roman"
# plot data
pp.figure(figsize=(6, 6),dpi=100,facecolor="w")
ax = pp.subplot(1, 1, 1, projection='smith')
pp.plot([10, 100], markevery=1)
pp.plot(200 + 100j, datatype=SmithAxes.Z_PARAMETER)
pp.plot(50 * val1, label="default", datatype=SmithAxes.Z_PARAMETER)
pp.plot(50 * val2, markevery=1, label="interpolate=3", interpolate=3, datatype=SmithAxes.Z_PARAMETER)
pp.plot(val1, markevery=1, label="equipoints=22", equipoints=22, datatype=SmithAxes.S_PARAMETER)
pp.plot(val2, markevery=3, label="equipoints=22, \nmarkevery=3", equipoints=22, datatype=SmithAxes.S_PARAMETER)
leg = pp.legend(loc="lower right", fontsize=12)
pp.title("Matplotlib Smith Chart Projection")
Example Of pySmithPlot
当然还可以绘制如下样例:
更多关于pySmithPlot库的介绍可参考:pySmithPlot介绍[1]
此外,plotly库也可以绘制史密斯图,样例如下:
详细绘制代码可参考:plotly 史密斯图绘制[2]
今天这篇推文简单介绍史密斯图(smith-charts) 的绘制方法,希望对大家有所帮助。
[1]
pySmithPlot: https://github.com/vMeijin/pySmithPlot。
[2]
smith-charts in plotly: https://plotly.com/python/smith-charts/。