2017-06-13 66 views
1

我刚将matplotlib升级到matplotlib2.0。据我什么也看不见,应该使用的基本改变,但我现在有这个奇怪的BU与RGB编码:matplotlib rgb颜色升级后无法正常工作matplotlib

ValueError异常:无效的RGBA的说法:从内核

myDF_DoMS.mean().plot(color =(0.2,0.2,0.7),xticks=np.arange(1,31,1)) 
plt.plot([1,32],[zeMeanS,zeMeanS],color=(0.2,0.7,0.9)) 
plt.xlabel('xlabel') 
plt.ylabel('Some Score') 
plt.title(Study+"\n A name") 
plt.show() 

投诉0.2

(完整的错误堆栈下面)

突然0.2不是浮动了! 如果我把“B”最糟糕的工作原理 而在2号线的其他“RGB”名单上的第2个工作正常(颜色=(0.2,0.7,0.9))...

我有点丢失。

设置: jupyter笔记本中的单元格副本,用于完美地工作。 Python 2.7在anaconda环境中。 Windows 10作为操作系统。

这里是输出:

ValueError        Traceback (most recent call 
last) C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\IPython\core\formatters.pyc 
in __call__(self, obj) 
    305     pass 
    306    else: 
--> 307     return printer(obj) 
    308    # Finally look for special method names 
    309    method = get_real_method(obj, self.print_method) 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\IPython\core\pylabtools.pyc 
in <lambda>(fig) 
    238 
    239  if 'png' in formats: 
--> 240   png_formatter.for_type(Figure, lambda fig: print_figure(fig, 'png', **kwargs)) 
    241  if 'retina' in formats or 'png2x' in formats: 
    242   png_formatter.for_type(Figure, lambda fig: retina_figure(fig, **kwargs)) 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\IPython\core\pylabtools.pyc 
in print_figure(fig, fmt, bbox_inches, **kwargs) 
    122 
    123  bytes_io = BytesIO() 
--> 124  fig.canvas.print_figure(bytes_io, **kw) 
    125  data = bytes_io.getvalue() 
    126  if fmt == 'svg': 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\backend_bases.pyc 
in print_figure(self, filename, dpi, facecolor, edgecolor, 
orientation, format, **kwargs) 2198      
orientation=orientation, 2199      dryrun=True, 
-> 2200      **kwargs) 2201     renderer = self.figure._cachedRenderer 2202     bbox_inches = self.figure.get_tightbbox(renderer) 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\backends\backend_agg.pyc 
in print_png(self, filename_or_obj, *args, **kwargs) 
    543 
    544  def print_png(self, filename_or_obj, *args, **kwargs): 
--> 545   FigureCanvasAgg.draw(self) 
    546   renderer = self.get_renderer() 
    547   original_dpi = renderer.dpi 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\backends\backend_agg.pyc 
in draw(self) 
    462 
    463   try: 
--> 464    self.figure.draw(self.renderer) 
    465   finally: 
    466    RendererAgg.lock.release() 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\artist.pyc 
in draw_wrapper(artist, renderer, *args, **kwargs) 
     61  def draw_wrapper(artist, renderer, *args, **kwargs): 
     62   before(artist, renderer) 
---> 63   draw(artist, renderer, *args, **kwargs) 
     64   after(artist, renderer) 
     65 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\figure.pyc 
in draw(self, renderer) 1142  1143    
mimage._draw_list_compositing_images(
-> 1144     renderer, self, dsu, self.suppressComposite) 1145  1146    renderer.close_group('figure') 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\image.pyc 
in _draw_list_compositing_images(renderer, parent, dsu, 
suppress_composite) 
    137  if not_composite or not has_images: 
    138   for zorder, a in dsu: 
--> 139    a.draw(renderer) 
    140  else: 
    141   # Composite any adjacent images together 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\artist.pyc 
in draw_wrapper(artist, renderer, *args, **kwargs) 
     61  def draw_wrapper(artist, renderer, *args, **kwargs): 
     62   before(artist, renderer) 
---> 63   draw(artist, renderer, *args, **kwargs) 
     64   after(artist, renderer) 
     65 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\axes\_base.pyc 
in draw(self, renderer, inframe) 2424    
renderer.stop_rasterizing() 2425 
-> 2426   mimage._draw_list_compositing_images(renderer, self, dsu) 2427  2428   renderer.close_group('axes') 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\image.pyc 
in _draw_list_compositing_images(renderer, parent, dsu, 
suppress_composite) 
    137  if not_composite or not has_images: 
    138   for zorder, a in dsu: 
--> 139    a.draw(renderer) 
    140  else: 
    141   # Composite any adjacent images together 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\artist.pyc 
in draw_wrapper(artist, renderer, *args, **kwargs) 
     61  def draw_wrapper(artist, renderer, *args, **kwargs): 
     62   before(artist, renderer) 
---> 63   draw(artist, renderer, *args, **kwargs) 
     64   after(artist, renderer) 
     65 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\lines.pyc 
in draw(self, renderer) 
    801     self._set_gc_clip(gc) 
    802 
--> 803     ln_color_rgba = self._get_rgba_ln_color() 
    804     gc.set_foreground(ln_color_rgba, isRGBA=True) 
    805     gc.set_alpha(ln_color_rgba[3]) 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\lines.pyc 
in _get_rgba_ln_color(self, alt) 1342  1343  def 
_get_rgba_ln_color(self, alt=False): 
-> 1344   return mcolors.to_rgba(self._color, self._alpha) 1345  1346  # some aliases.... 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\colors.pyc 
in to_rgba(c, alpha) 
    141   rgba = _colors_full_map.cache[c, alpha] 
    142  except (KeyError, TypeError): # Not in cache, or unhashable. 
--> 143   rgba = _to_rgba_no_colorcycle(c, alpha) 
    144   try: 
    145    _colors_full_map.cache[c, alpha] = rgba 

C:\Program 
Files\Anaconda2\envs\moonshade\lib\site-packages\matplotlib\colors.pyc 
in _to_rgba_no_colorcycle(c, alpha) 
    192   # float)` and `np.array(...).astype(float)` all convert "0.5" to 0.5. 
    193   # Test dimensionality to reject single floats. 
--> 194   raise ValueError("Invalid RGBA argument: {!r}".format(orig_c)) 
    195  # Return a tuple to prevent the cached value from being modified. 
    196  c = tuple(c.astype(float)) 

ValueError: Invalid RGBA argument: 0.2 

<matplotlib.figure.Figure at 0x14e54ac8> 
+0

只需添加,第一个调用的对象就是一个熊猫数据框。这个问题可以很容易地解决,只需使用任何其他颜色代码,如xkcd或字母作品,它只是令人困惑(对我来说)令人困惑。 –

+0

如果您忘记添加某些内容到您的问题中,只需编辑它,而不是评论。请注意,当你提供问题时,帮助你总是更容易。由于我们没有你的数据框,我们只能猜测。偶然绘制的数据框是否有3列? – ImportanceOfBeingErnest

回答

0

如果你的数据帧到情节有3列,颜色指定为color=(0.2,0.2,0.7)是模糊的。它很可能被解释为一个颜色元组,在这种情况下0.2将成为绘制第一列的颜色。但是,0.2毕竟不是有效的颜色,因此也是错误。

一种选择是使用

color=matplotlib.colors.to_hex((0.2,0.2,0.9)) 

或直接使用十六进制相当于

color="#3333e5" 

顺便说一句,我不认为这种行为已经matplotlib版本之间变化,所以它可能只是你现在使用了不同的数据框(?)。

+0

是的,我可能已经切换了数据帧形状。无论如何,您的解决方案的工作方式与切换格式当然一样。我承认对matplotlib是全新的,所以我不能说我明白发生了什么问题。但是,谢谢你的答案和解决方法! –

相关问题