python - 如何解决“x 和 y 必须具有相同的第一维,但形状为 (1,) 和 (360,)?”
问题描述
我收到此错误“x 和 y 必须具有相同的第一维,但具有形状 (1,) 和 (360,)”
import matplotlib.pyplot as plt
import numpy as np
import pandas as pd
import datetime
datetime_object = datetime.datetime.now()
print(datetime_object)
def ReadData(sf):
sdir="drive/My Drive/Colab Notebooks"
sff="%s/%s"%(sdir ,sf)
df = np.array(pd.read_csv(sff,header=None, sep = '\s+'))
df1 = pd.DataFrame(df)
return df1.values
ecg=ReadData("/dataecg.txt")
y = []
x0 = []
i = 0
for x in range(0, 360):
y.append(ecg[x])
#print(y[i])
x0.append(i)
i = i+1
plt.plot(x0, y)
T = 360
k = 40
dx = 1
a = np.empty(T)
b = np.empty(T)
y2 = np.empty(T)
sumy = 0
for i in range(0, T, 1):
sumy = sumy + y[i]
a[0] = sumy/T
b[0] = 0
for n in range(1, k, 1):
sumcos = 0
sumsin = 0
for i in range(1, T, 1):
sumcos = sumcos + (y[i] * np.cos(2*np.pi/T*n*x0[i]) * dx)
sumsin = sumsin + (y[i] * np.sin(2*np.pi/T*n*x0[i]) * dx)
a[n] = (2/T) * sumcos
#print(n)
#print(a[n])
b[n] = (2/T) * sumsin
#print(b[n])
for i in range(0, 360, 1):
y2[i] = a[0]
for n in range(1, k, 1):
y2[i] = y2[i] + (a[n] * np.cos(2*np.pi/T*n*x0[i]))+(b[n] * np.sin(2*np.pi/T*n*x0[i]))
plt.plot(x, y2)
plt.grid(True)
#plt.savefig("drive/My Drive/Colab Notebooks/numeric/test.png")
plt.show()
我得到这个错误:
> --------------------------------------------------------------------------- ValueError Traceback (most recent call
> last) <ipython-input-21-b14f3888f4b1> in <module>()
> 57 y2[i] = y2[i] + (a[n] * np.cos(2*np.pi/T*n*x0[i]))+(b[n] * np.sin(2*np.pi/T*n*x0[i]))
> 58
> ---> 59 plt.plot(x, y2)
> 60
> 61 plt.grid(True) 3 frames /usr/local/lib/python3.7/dist-packages/matplotlib/axes/_base.py in
> _plot_args(self, tup, kwargs)
> 340
> 341 if x.shape[0] != y.shape[0]:
> --> 342 raise ValueError(f"x and y must have same first dimension, but "
> 343 f"have shapes {x.shape} and {y.shape}")
> 344 if x.ndim > 2 or y.ndim > 2: ValueError: x and y must have same first dimension, but have shapes (1,) and (360,)
有人可以帮我解决这个问题吗?我还是python的新手,谢谢
解决方案
推荐阅读
- ruby - 检查变量是否等于 X 或 Y
- php - 使用 PHP 表单在 Google App Engine 上托管静态网站
- jprofiler - JProfiler:使用文件夹而不是文件名进行离线分析 | jprofiler_config.xml 是否有 XSD?
- nlog - overflowAction Grow 和 Block 之间的 NLog 区别
- javascript - 如何访问firestore中的嵌套数据并将其保存在数组中
- r - 如何指定和清理/删除行?
- javascript - 用于替换 Javascript 中特定字符串的正则表达式
- list - 将数字转换为 Prolog 中的列表?
- django - Django Concatenate charfields 并将其解析为 Datetime
- sql - 如何选择实体的计数,其中时间序列日期介于该实体的开始日期和结束日期之间