在jupyter notebook运行画图遇到InvalidIndexError: (slice(None, None, None), None)解决
在jupyter notebook运行画图遇到InvalidIndexError: (slice(None, None, None), None)解决
·
错误代码
x_data = pd.read_csv('E:/bear3/3_3v_tezheng/liutezheng/x.txt',header=None)
y_data = pd.read_csv('E:/bear3/3_3v_tezheng/liutezheng/nengliangshang_guiyihua.txt',header=None)
plt.plot(x_data[730:832],y_data[730:832])
plt.show()
错误:
TypeError Traceback (most recent call last) File E:\anaconda\lib\site-packages\pandas\core\indexes\base.py:3621, in Index.get_loc(self, key, method, tolerance) 3620 try: -> 3621 return self._engine.get_loc(casted_key) 3622 except KeyError as err: File E:\anaconda\lib\site-packages\pandas\_libs\index.pyx:136, in pandas._libs.index.IndexEngine.get_loc() File E:\anaconda\lib\site-packages\pandas\_libs\index.pyx:142, in pandas._libs.index.IndexEngine.get_loc() TypeError: '(slice(None, None, None), None)' is an invalid key During handling of the above exception, another exception occurred: InvalidIndexError Traceback (most recent call last) Input In [62], in <cell line: 3>() 1 # x_data = np.array(x_data,type(float)) 2 # y_data = np.array(y_data,type(float)) ----> 3 plt.plot(x_data[730:832],y_data[730:832]) 4 # plt.plot(x_data[730:832],predict) 5 plt.show() File E:\anaconda\lib\site-packages\matplotlib\pyplot.py:2757, in plot(scalex, scaley, data, *args, **kwargs) 2755 @_copy_docstring_and_deprecators(Axes.plot) 2756 def plot(*args, scalex=True, scaley=True, data=None, **kwargs): -> 2757 return gca().plot( 2758 *args, scalex=scalex, scaley=scaley, 2759 **({"data": data} if data is not None else {}), **kwargs) File E:\anaconda\lib\site-packages\matplotlib\axes\_axes.py:1632, in Axes.plot(self, scalex, scaley, data, *args, **kwargs) 1390 """ 1391 Plot y versus x as lines and/or markers. 1392 (...) 1629 (``'green'``) or hex strings (``'#008000'``). 1630 """ 1631 kwargs = cbook.normalize_kwargs(kwargs, mlines.Line2D) -> 1632 lines = [*self._get_lines(*args, data=data, **kwargs)] 1633 for line in lines: 1634 self.add_line(line) File E:\anaconda\lib\site-packages\matplotlib\axes\_base.py:312, in _process_plot_var_args.__call__(self, data, *args, **kwargs) 310 this += args[0], 311 args = args[1:] --> 312 yield from self._plot_args(this, kwargs) File E:\anaconda\lib\site-packages\matplotlib\axes\_base.py:488, in _process_plot_var_args._plot_args(self, tup, kwargs, return_kwargs) 486 if len(xy) == 2: 487 x = _check_1d(xy[0]) --> 488 y = _check_1d(xy[1]) 489 else: 490 x, y = index_of(xy[-1]) File E:\anaconda\lib\site-packages\matplotlib\cbook\__init__.py:1327, in _check_1d(x) 1321 with warnings.catch_warnings(record=True) as w: 1322 warnings.filterwarnings( 1323 "always", 1324 category=Warning, 1325 message='Support for multi-dimensional indexing') -> 1327 ndim = x[:, None].ndim 1328 # we have definitely hit a pandas index or series object 1329 # cast to a numpy array. 1330 if len(w) > 0: File E:\anaconda\lib\site-packages\pandas\core\frame.py:3505, in DataFrame.__getitem__(self, key) 3503 if self.columns.nlevels > 1: 3504 return self._getitem_multilevel(key) -> 3505 indexer = self.columns.get_loc(key) 3506 if is_integer(indexer): 3507 indexer = [indexer] File E:\anaconda\lib\site-packages\pandas\core\indexes\base.py:3628, in Index.get_loc(self, key, method, tolerance) 3623 raise KeyError(key) from err 3624 except TypeError: 3625 # If we have a listlike key, _check_indexing_error will raise 3626 # InvalidIndexError. Otherwise we fall through and re-raise 3627 # the TypeError. -> 3628 self._check_indexing_error(key) 3629 raise 3631 # GH#42269 File E:\anaconda\lib\site-packages\pandas\core\indexes\base.py:5637, in Index._check_indexing_error(self, key) 5633 def _check_indexing_error(self, key): 5634 if not is_scalar(key): 5635 # if key is not a scalar, directly raise an error (the code below 5636 # would convert to numpy arrays and raise later any way) - GH29926 -> 5637 raise InvalidIndexError(key) InvalidIndexError: (slice(None, None, None), None)
其实明面上看,程序本身并没有错误,但就是错在数据文本格式上,解决方案如下。
x_data = np.array(x_data,type(float))
y_data = np.array(y_data,type(float))
plt.plot(x_data[730:832],y_data[730:832])
plt.show()
这样图片就出来了啊,其实不知道什么原因,哪里错了就直接打印出来,就好解决了。
更多推荐
已为社区贡献7条内容
所有评论(0)