点击上方“DataCharm”,选择“星标”公众号
今天小编给大家推荐一个绘制史密斯圆图(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')
当然还可以绘制如下样例:
更多关于pySmithPlot库的介绍可参考:pySmithPlot介绍[1]
此外,plotly库也可以绘制史密斯图,样例如下:
详细绘制代码可参考:plotly 史密斯图绘制[2]
今天这篇推文简单介绍史密斯图(smith-charts) 的绘制方法,希望对大家有所帮助。
联系客服