Ошибка типа : ожидаемый вектор 1D для x, я получаю точечную диаграмму, но не получаю соответствующую линию тренда

#python

Вопрос:

Ниже приведен мой код, написанный, но я получаю вышеупомянутую ошибку. Может ли кто-нибудь, пожалуйста, помочь мне в этом отношении? Заранее спасибо.

 import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
csv = pd.read_excel("Slider.xlsx",sheet_name="K",skiprows=2,usecols = "E");
data = pd.read_excel("Slider.xlsx",sheet_name="K",skiprows=2,usecols = "F");
x = csv
y = data
plt.scatter(x, y)
z = np.polyfit(x, y, 1)
p = np.poly1d(z)
plt.plot(x,p(x),"r--")
plt.show()
 

Комментарии:

1. Похоже csv , что у вас есть фрейм данных, а не серия. Попробуйте сначала распечатать его, чтобы посмотреть, нет ли случайно другой колонки. Если нет, попробуйте использовать pd.Series вместо этого.

2. Я инженер-механик, и я новичок в этом пакете, не могли бы вы, пожалуйста, подробнее рассказать о том, что мне нужно сделать.

3. Я почти уверен, что это должно быть просто x.squeeze() . Не могу сказать наверняка, не увидев, что x есть. По сути, фрейм данных состоит из множества столбцов (каждый столбец называется серией). При создании точечной диаграммы вы можете иметь только 1-мерный массив для x и 1-мерный массив для y. Вот почему вам нужно преобразовать его.