【发布时间】:2021-07-20 06:21:29
【问题描述】:
您好,我是 python 图形的初学者
我有一些像这样的 wifi 数据(Dataframe)
| SSID | RSSI | Channel | r_range | l_range | Bandwidth |
|---|---|---|---|---|---|
| ASUS_Kurt | -76 | 2 | 0.0 | 4.0 | 20MHz |
| Javen-2.4G | -91 | 3 | 1.0 | 9.0 | 40MHz |
| LIN | -62 | 6 | 4.0 | 8.0 | 20MHz |
| wcs2.4G | -64 | 11 | 9.0 | 13.0 | 20MHz |
| LIN-EXT | -74 | 11 | 5.0 | 13.0 | 40MHz |
如何使用 matplotlib 或 seaborn 绘制这样的 Wifi-Channel 图
我尝试这样的代码:
plt.cla()
a = [['test', -87, 6, 4, 8]]
df = pd.DataFrame(a, columns=['ssid', 'rssi', 'channel', 'r', 'l'])
x = np.linspace(df['r'], df['l'], 50)
y = int(df['rssi']) * np.sin((x - int(df['channel']) + 2) / 4 * np.pi)
plt.fill(x, y, color='r', alpha=0.3)
plt.show()
像这样打印图表
不是我想要的。
y.value 应该是 -99 到 0 和 frequency height 应该像 -99 到 -87,只有 13 通道中的高度 6
【问题讨论】:
-
你尝试了什么?你的代码在哪里?
-
我尝试这样 x = np.linspace(df['r'], df['l'], 50) y = int(df['rssi']) * np.sin( (x - int(df['channel']) + 2) / 4 * np.pi) f, ax = plt.subplots(1) plt.fill(x, y, color='r', alpha=0.3)
-
但绘图不是我想要的 y.values 应该是 -99 到 0,列高应该像 rssi='-87' 通道:6,只有 -13dbm 高度,对不起,我是第一个尝试python图
-
你试过
y = -99 - y翻转数据吗? -
你可能还需要
int(-99-row['rssi'])
标签: python matplotlib seaborn