是reader读写器和tag之间传输信号强度和距离的一个关系衰减式子。
函数本身是一个一般复杂的函数,本身带有lg和^2这些计算。
给出原公式。
P_rx = Ae/ (4pi * r^2) * 10^-3
P_tx = 10 lg 1000 P_rx
第一次自己写,我的函数很简单,基本上分为几步:
1)定义图的基本参数
2)定义函数
3)绘制图形
4)描点,标注
导入包:
import matplotlib.pyplot as plt
import numpy as np
import math
设置图的基本参数和线标示:
#设置大小
plt.figure(figsize=(10, 7), dpi=100)
# 线的标示在左上角,y为forward, Y为backward
plt.legend(loc="upper left")
坐标轴精确刻度:
# 设置横轴精准刻度
plt.xticks([-32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8])
# 设置纵轴精准刻度
plt.yticks([-90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40])
写函数:
#前向曲线
X=np.linspace(0,3,30)
Y = 10 * np.log10(0.7 / X ** 2)
plt.plot(X, Y)
描点:
标出(3,-10)和(1,-1.5)这两个点并且附上label
#描点
plt.scatter([3], [-10], s=50, color="#800080")
plt.annotate("(3, -10)",
xy=(3, -10),
fontsize=12,
xycoords='data')
plt.scatter([1], [-1.5], s=50, color="#800080")
plt.annotate("(1, -1.5)",
xy=(1, -1.5),
fontsize=12,
xycoords='data')
线的参数设置:
# 绘制颜色为紫色、宽度为 1, 像素的不连续曲线 Y
plt.plot(X, Y, color="#800080", linewidth=1.0, linestyle="--", label="Backward")
绘制如下
完成。
基本上简单的函数可以通过这种方法表示出来。
完整代码如下:
import matplotlib.pyplot as plt
import numpy as np
import math
#设置大小
plt.figure(figsize=(10, 7), dpi=100)
# 设置横轴精准刻度
plt.xticks([-32, -16, -8, -4, -2, -1, 0, 1, 2, 4, 8])
# 设置纵轴精准刻度
plt.yticks([-90, -80, -70, -60, -50, -40, -30, -20, -10, 0, 10, 20, 30, 40])
#前向曲线
X=np.linspace(0,3,30)
Y = 10 * np.log10(0.7 / X ** 2)
plt.plot(X, Y)
#描点
plt.scatter([3], [-10], s=50, color="#800080")
plt.annotate("(3, -10)",
xy=(3, -10),
fontsize=12,
xycoords='data')
plt.scatter([1], [-1.5], s=50, color="#800080")
plt.annotate("(1, -1.5)",
xy=(1, -1.5),
fontsize=12,
xycoords='data')
# 绘制颜色为紫色、宽度为 1, 像素的不连续曲线 Y
plt.plot(X, Y, color="#800080", linewidth=1.0, linestyle="--", label="Backward")
plt.legend(loc="upper left")