首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >matplotlib错误:x和y必须相同大小

matplotlib错误:x和y必须相同大小
EN

Stack Overflow用户
提问于 2019-03-29 18:55:19
回答 1查看 10K关注 0票数 0

如何修复‘ValueError:x和y必须相同大小’错误?

该程序的思想是从不同的温度传感器和没有数据的情况下应用多元线性回归模型。训练模型并查看它们之间的相关结果,以及整个预测。

代码语言:javascript
运行
复制
from sklearn import linear_model
from sklearn.linear_model import LinearRegression
from sklearn.model_selection import train_test_split
import pandas as pd
import matplotlib.pyplot as plt

# Name of de file
filename = 'NORM_AC_HAE.csv'
file = 'NORM_NABEL_HAE_lev1.csv'

# Read the data
data=pd.read_csv(filename)
data_other=pd.read_csv(file)

col = ['Aircube.009.0.no.we.aux.ch6', 'Aircube.009.0.sht.temperature.ch1']
X = data.loc[:, col]
Y = data_other.loc[:,'NO.ppb']

# Fitting the Liner Regression to training set
X_train, X_test, y_train, y_test = train_test_split(X, Y, test_size = 0.3, train_size = 0.6, random_state = np.random.seed(0))
mlr = LinearRegression()
mlr.fit(X_train, y_train)

# Visualization of the test set results
plt.figure(2)
plt.scatter(y_test, X_test) #The VALUE ERROR appears here

错误代码为:

代码语言:javascript
运行
复制
Traceback (most recent call last):
  File "C:\Users\andre\Desktop\UV\4o\TFG\EMPA\dataset_Mila\MLR_no_temp_hae_no.py", line 65, in <module>
    plt.scatter(y_test, X_test)
  File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\pyplot.py", line 2864, in scatter
    is not None else {}), **kwargs)
  File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\__init__.py", line 1810, in inner
    return func(ax, *args, **kwargs)
  File "C:\Users\andre\AppData\Local\Programs\Python\Python37-32\lib\site-packages\matplotlib\axes\_axes.py", line 4182, in scatter
    raise ValueError("x and y must be the same size")
ValueError: x and y must be the same size
[Finished in 6.9s]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-03-29 19:25:15

X_test.shape = 36648行x 2列

plt.scatter中的两个数据参数(这里是y_testX_test)都必须是一维数组;来自docs

形状x,y:array_like,

(n,)

而在这里,您尝试传递X_test的2维矩阵,因此产生了不同大小的错误。

您无法获得具有数组/向量的矩阵的散点图;您可以做的是生成两个单独的散点图,X_test中的每一列一个散点图

代码语言:javascript
运行
复制
plt.figure(2)
plt.scatter(y_test, X_test.iloc[:,0].values)

plt.figure(3)
plt.scatter(y_test, X_test.iloc[:,1].values)
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/55415891

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档