gpt4 book ai didi

Python - 使用 Matplotlib 绘制散点图时出错 : Index out of range

转载 作者:行者123 更新时间:2023-12-01 02:12:40 24 4
gpt4 key购买 nike

我对 Python 非常陌生,我有一个包含三列的 CSV 文件。它们代表传输时间(以毫秒为单位)、信号幅度和 FM radio 频率(以 kHz 为单位)。有很多行,但它们看起来像这样:

enter image description here

我的任务是找出哪个射频产生随机噪声,哪个是结构化信号。对于如何执行此操作,我尝试首先在数据文件的频率列(第 3 列)中查找唯一值,然后单独绘制它们以查找结构化数据。我的猜测是 71.231012 频率是白噪声(它在文件中似乎不太常见),因此我基本上尝试绘制这两个频率,看看我的猜测是否正确。

到目前为止,这是我的代码:

from __future__ import division
import matplotlib.pyplot as mplot
import numpy as np

file=open("data.csv", "r")
data=file.read()
data=data.replace(" ", ",")
data=data.split("\n")

xscatter=[]
yscatter=[]

for row in data:
row=row.split(",")
row[2]=float(row[2])
if row[2] == 71.231012:
xscatter.append(row[2])
yscatter.append(row[1])

mplot.scatter(xscatter, yscatter, color="blue", marker="o")
mplot.show()

但我不断收到此错误:

row[2]=float(row[2])

IndexError: list index out of range

我不知道为什么会出现这种情况;我认为,通过分割,每行会有三个索引(0,1,2)。因为我对 Python 很陌生,所以我也不确定我的代码在做我想做的事情时有多准确或高效,但这是一个开始。我非常感谢一些帮助。

编辑:这是在 for 循环之前分割文件后的输出示例:

enter image description here

最佳答案

代码 row=row.split(",")row 变量设置为类似 ['0.000000', '', '0.000000' ,'','0.000000']。您的代码给出索引错误,因为字符串 '' 中没有索引 2。

有两种方法可以做到这一点:

  1. 我的想法是通过将 row=row.split(",") 更改为 row=row.split(", ,"),这将完美地工作。

  2. data=data.replace("", ",") 更改为 data=data.replace("", ",") (两个空格),这也可以完美地工作。

关于Python - 使用 Matplotlib 绘制散点图时出错 : Index out of range,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48613584/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com