로그인 바로가기 하위 메뉴 바로가기 본문 바로가기

인공지능 코딩을 위한 실용 파이썬(Practical Python for AI Coding)

임시 이미지 KAIST 기술경영학부 권영선 교수
http://kooc.kaist.ac.kr/python4ai/forum/31764
좋아요 6384 수강생 8024

==============================================

import seaborn as sns
iris = pd.read_csv('data/iris.data')
iris.columns =['SepalL', 'SepalW', 'PetalL', 'PetalW', 'Name']

plt.figure(figsize=(8,6))
sns.set_style('whitegrid')    # background options: white, dark, ticks, etc.
iris_scat = sns.scatterplot(x='PetalL', y='PetalW', palette='bright', hue='Name', style='Name', s=80, data=iris)
iris_scat.set_title('Iris Distribution by Sepal', fontsize=14)
iris_scat.set(xlabel='Sepal Length(cm)', ylabel= 'Sepal Width(cm)')
plt.show()

==============================================

질문 1. 위 코드를 쥬피터 랩(실행환경은 1주차 강의에서 설명하신대로 구축했습니다.)에서 실행하면

ValueError: zero-size array to reduction operation minimum which has no identity

에러 발생합니다.

ㅇ iris_scat = sns.scatterplot(x='PetalL', y='PetalW', palette='bright', hue='Name', style='Name', s=80, data=iris)

=> iris_scat = sns.scatterplot(x='PetalL', y='PetalW', palette='bright', s=80, data=iris) 

이렇게 고치면 에러메시지는 안나오는데 그래프가 강의처럼 나오지 않습니다.

%. iris 데이터

링크를 가보면 iris.data가 있고 iris.csv는 없어서 iris.data로 변경해서 불러왔습니다.

앞의 코드 부분은 이상없이 잘 동작했습니다.


전체 에러메시지는 아래와 같습니다.

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
~\anaconda3\envs\kooc\lib\site-packages\IPython\core\formatters.py in __call__(self, obj)
    339                 pass
    340             else:
--> 341                 return printer(obj)
    342             # Finally look for special method names
    343             method = get_real_method(obj, self.print_method)

~\anaconda3\envs\kooc\lib\site-packages\IPython\core\pylabtools.py in <lambda>(fig)
    246
    247     if 'png' in formats:
--> 248         png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs))
    249     if 'retina' in formats or 'png2x' in formats:
    250         png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs))

~\anaconda3\envs\kooc\lib\site-packages\IPython\core\pylabtools.py in print_figure(fig, fmt, bbox_inches, **kwargs)
    130         FigureCanvasBase(fig)
    131
--> 132     fig.canvas.print_figure(bytes_io, **kw)
    133     data = bytes_io.getvalue()
    134     if fmt == 'svg':

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\backend_bases.py in print_figure(self, filename, dpi, facecolor, edgecolor, orientation, format, bbox_inches, pad_inches, bbox_extra_artists, backend, **kwargs)
   2191                            else suppress())
   2192                     with ctx:
-> 2193                         self.figure.draw(renderer)
   2194
   2195                     bbox_inches = self.figure.get_tightbbox(

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     39                 renderer.start_filter()
     40
---> 41             return draw(artist, renderer, *args, **kwargs)
     42         finally:
     43             if artist.get_agg_filter() is not None:

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\figure.py in draw(self, renderer)
   1862             self.patch.draw(renderer)
   1863             mimage._draw_list_compositing_images(
-> 1864                 renderer, self, artists, self.suppressComposite)
   1865
   1866             renderer.close_group('figure')

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\image.py in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)
    129     if not_composite or not has_images:
    130         for a in artists:
--> 131             a.draw(renderer)
    132     else:
    133         # Composite any adjacent images together

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     39                 renderer.start_filter()
     40
---> 41             return draw(artist, renderer, *args, **kwargs)
     42         finally:
     43             if artist.get_agg_filter() is not None:

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\cbook\deprecation.py in wrapper(*inner_args, **inner_kwargs)
    409                          else deprecation_addendum,
    410                 **kwargs)
--> 411         return func(*inner_args, **inner_kwargs)
    412
    413     return wrapper

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\axes\_base.py in draw(self, renderer, inframe)
   2746             renderer.stop_rasterizing()
   2747
-> 2748         mimage._draw_list_compositing_images(renderer, self, artists)
   2749
   2750         renderer.close_group('axes')

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\image.py in _draw_list_compositing_images(renderer, parent, artists, suppress_composite)
    129     if not_composite or not has_images:
    130         for a in artists:
--> 131             a.draw(renderer)
    132     else:
    133         # Composite any adjacent images together

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     39                 renderer.start_filter()
     40
---> 41             return draw(artist, renderer, *args, **kwargs)
     42         finally:
     43             if artist.get_agg_filter() is not None:

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\collections.py in draw(self, renderer)
    929     def draw(self, renderer):
    930         self.set_sizes(self._sizes, self.figure.dpi)
--> 931         Collection.draw(self, renderer)
    932
    933

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\artist.py in draw_wrapper(artist, renderer, *args, **kwargs)
     39                 renderer.start_filter()
     40
---> 41             return draw(artist, renderer, *args, **kwargs)
     42         finally:
     43             if artist.get_agg_filter() is not None:

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\collections.py in draw(self, renderer)
    383             else:
    384                 combined_transform = transform
--> 385             extents = paths[0].get_extents(combined_transform)
    386             if (extents.width < self.figure.bbox.width
    387                     and extents.height < self.figure.bbox.height):

~\anaconda3\envs\kooc\lib\site-packages\matplotlib\path.py in get_extents(self, transform, **kwargs)
    601                 xys.append(curve([0, *dzeros, 1]))
    602             xys = np.concatenate(xys)
--> 603         return Bbox([xys.min(axis=0), xys.max(axis=0)])
    604
    605     def intersects_path(self, other, filled=True):

~\anaconda3\envs\kooc\lib\site-packages\numpy\core\_methods.py in _amin(a, axis, out, keepdims, initial, where)
     41 def _amin(a, axis=None, out=None, keepdims=False,
     42           initial=_NoValue, where=True):
---> 43     return umr_minimum(a, axis, None, out, keepdims, initial, where)
     44
     45 def _sum(a, axis=None, dtype=None, out=None, keepdims=False,

ValueError: zero-size array to reduction operation minimum which has no identity