Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
Browse files

Merge pull request #1797 from NelleV/pep8_colors

PEP8 on colors module
  • Loading branch information...
commit 1b346e0b59b6f15ee3da5c04691b196de0e58e2b 2 parents 56df912 + 2581bfb
@pelson pelson authored
Showing with 65 additions and 71 deletions.
  1. +65 −71 lib/matplotlib/colors.py
View
136 lib/matplotlib/colors.py
@@ -16,11 +16,11 @@
list of color specifications.
The module also provides a single instance, *colorConverter*, of the
-:class:`ColorConverter` class providing methods for converting single
-color specifications or sequences of them to *RGB* or *RGBA*.
+:class:`ColorConverter` class providing methods for converting single color
+specifications or sequences of them to *RGB* or *RGBA*.
-Commands which take color arguments can use several formats to specify
-the colors. For the basic builtin colors, you can use a single letter
+Commands which take color arguments can use several formats to specify the
+colors. For the basic builtin colors, you can use a single letter
- b: blue
- g: green
@@ -31,21 +31,20 @@
- k: black
- w: white
-Gray shades can be given as a string encoding a float in the 0-1
-range, e.g.::
+Gray shades can be given as a string encoding a float in the 0-1 range, e.g.::
color = '0.75'
-For a greater range of colors, you have two options. You can specify
-the color using an html hex string, as in::
+For a greater range of colors, you have two options. You can specify the
+color using an html hex string, as in::
color = '#eeefff'
-or you can pass an *R* , *G* , *B* tuple, where each of *R* , *G* , *B*
-are in the range [0,1].
+or you can pass an *R* , *G* , *B* tuple, where each of *R* , *G* , *B* are in
+the range [0,1].
-Finally, legal html names for colors, like 'red', 'burlywood' and
-'chartreuse' are supported.
+Finally, legal html names for colors, like 'red', 'burlywood' and 'chartreuse'
+are supported.
"""
from __future__ import print_function, division
import re
@@ -198,8 +197,7 @@
'white': '#FFFFFF',
'whitesmoke': '#F5F5F5',
'yellow': '#FFFF00',
- 'yellowgreen': '#9ACD32',
- }
+ 'yellowgreen': '#9ACD32'}
# add british equivs
@@ -255,8 +253,7 @@ class ColorConverter(object):
'm': (0.75, 0, 0.75),
'y': (0.75, 0.75, 0),
'k': (0.0, 0.0, 0.0),
- 'w': (1.0, 1.0, 1.0),
- }
+ 'w': (1.0, 1.0, 1.0), }
cache = {}
@@ -286,8 +283,8 @@ def to_rgb(self, arg):
pass
except TypeError:
raise ValueError(
- 'to_rgb: arg "%s" is unhashable even inside a tuple'
- % (str(arg),))
+ 'to_rgb: arg "%s" is unhashable even inside a tuple'
+ % (str(arg),))
try:
if cbook.is_string_like(arg):
@@ -301,26 +298,26 @@ def to_rgb(self, arg):
fl = float(argl)
if fl < 0 or fl > 1:
raise ValueError(
- 'gray (string) must be in range 0-1')
+ 'gray (string) must be in range 0-1')
color = tuple([fl] * 3)
elif cbook.iterable(arg):
if len(arg) > 4 or len(arg) < 3:
raise ValueError(
- 'sequence length is %d; must be 3 or 4' % len(arg))
+ 'sequence length is %d; must be 3 or 4' % len(arg))
color = tuple(arg[:3])
if [x for x in color if (float(x) < 0) or (x > 1)]:
# This will raise TypeError if x is not a number.
raise ValueError(
- 'number in rbg sequence outside 0-1 range')
+ 'number in rbg sequence outside 0-1 range')
else:
raise ValueError(
- 'cannot convert argument to rgb sequence')
+ 'cannot convert argument to rgb sequence')
self.cache[arg] = color
except (KeyError, ValueError, TypeError) as exc:
raise ValueError(
- 'to_rgb: Invalid rgb arg "%s"\n%s' % (str(arg), exc))
+ 'to_rgb: Invalid rgb arg "%s"\n%s' % (str(arg), exc))
# Error messages could be improved by handling TypeError
# separately; but this should be rare and not too hard
# for the user to figure out as-is.
@@ -348,7 +345,7 @@ def to_rgba(self, arg, alpha=None):
if [x for x in arg if (float(x) < 0) or (x > 1)]:
# This will raise TypeError if x is not a number.
raise ValueError(
- 'number in rbga sequence outside 0-1 range')
+ 'number in rbga sequence outside 0-1 range')
if alpha is None:
return tuple(arg)
if alpha < 0.0 or alpha > 1.0:
@@ -357,7 +354,7 @@ def to_rgba(self, arg, alpha=None):
r, g, b = arg[:3]
if [x for x in (r, g, b) if (float(x) < 0) or (x > 1)]:
raise ValueError(
- 'number in rbg sequence outside 0-1 range')
+ 'number in rbg sequence outside 0-1 range')
else:
r, g, b = self.to_rgb(arg)
if alpha is None:
@@ -365,7 +362,7 @@ def to_rgba(self, arg, alpha=None):
return r, g, b, alpha
except (TypeError, ValueError) as exc:
raise ValueError(
- 'to_rgba: Invalid rgba arg "%s"\n%s' % (str(arg), exc))
+ 'to_rgba: Invalid rgba arg "%s"\n%s' % (str(arg), exc))
def to_rgba_array(self, c, alpha=None):
"""
@@ -458,18 +455,18 @@ def makeMappingArray(N, data, gamma=1.0):
if x[0] != 0. or x[-1] != 1.0:
raise ValueError(
- "data mapping points must start with x=0. and end with x=1")
+ "data mapping points must start with x=0. and end with x=1")
if np.sometrue(np.sort(x) - x):
raise ValueError(
- "data mapping points must have x in increasing order")
+ "data mapping points must have x in increasing order")
# begin generation of lookup table
x = x * (N - 1)
lut = np.zeros((N,), np.float)
xind = (N - 1) * np.linspace(0, 1, N) ** gamma
ind = np.searchsorted(x, xind)[1:-1]
- lut[1:-1] = (((xind[1:-1] - x[ind - 1]) / (x[ind] - x[ind - 1]))
- * (y0[ind] - y1[ind - 1]) + y1[ind - 1])
+ lut[1:-1] = (((xind[1:-1] - x[ind - 1]) / (x[ind] - x[ind - 1])) *
+ (y0[ind] - y1[ind - 1]) + y1[ind - 1])
lut[0] = y1[0]
lut[-1] = y0[-1]
# ensure that the lut is confined to values between 0 and 1 by clipping it
@@ -635,8 +632,8 @@ def _init(self):
def is_gray(self):
if not self._isinit:
self._init()
- return (np.alltrue(self._lut[:, 0] == self._lut[:, 1])
- and np.alltrue(self._lut[:, 0] == self._lut[:, 2]))
+ return (np.alltrue(self._lut[:, 0] == self._lut[:, 1]) and
+ np.alltrue(self._lut[:, 0] == self._lut[:, 2]))
class LinearSegmentedColormap(Colormap):
@@ -701,15 +698,15 @@ def __init__(self, name, segmentdata, N=256, gamma=1.0):
def _init(self):
self._lut = np.ones((self.N + 3, 4), np.float)
- self._lut[:-3, 0] = makeMappingArray(self.N,
- self._segmentdata['red'], self._gamma)
- self._lut[:-3, 1] = makeMappingArray(self.N,
- self._segmentdata['green'], self._gamma)
- self._lut[:-3, 2] = makeMappingArray(self.N,
- self._segmentdata['blue'], self._gamma)
+ self._lut[:-3, 0] = makeMappingArray(
+ self.N, self._segmentdata['red'], self._gamma)
+ self._lut[:-3, 1] = makeMappingArray(
+ self.N, self._segmentdata['green'], self._gamma)
+ self._lut[:-3, 2] = makeMappingArray(
+ self.N, self._segmentdata['blue'], self._gamma)
if 'alpha' in self._segmentdata:
- self._lut[:-3, 3] = makeMappingArray(self.N,
- self._segmentdata['alpha'], 1)
+ self._lut[:-3, 3] = makeMappingArray(
+ self.N, self._segmentdata['alpha'], 1)
self._isinit = True
self._set_extremes()
@@ -955,7 +952,7 @@ def __call__(self, value, clip=None):
if clip:
mask = ma.getmask(result)
result = ma.array(np.clip(result.filled(vmax), vmin, vmax),
- mask=mask)
+ mask=mask)
# in-place equivalent of above can be much faster
resdat = result.data
mask = result.mask
@@ -1000,7 +997,7 @@ def autoscale_None(self, A):
self.vmin = ma.min(A)
if self.vmax is None:
self.vmax = ma.max(A)
-
+
class SymLogNorm(Normalize):
"""
@@ -1039,7 +1036,7 @@ def __call__(self, value, clip=None):
result, is_scalar = self.process_value(value)
self.autoscale_None(result)
vmin, vmax = self.vmin, self.vmax
-
+
if vmin > vmax:
raise ValueError("minvalue must be less than or equal to maxvalue")
elif vmin == vmax:
@@ -1048,7 +1045,7 @@ def __call__(self, value, clip=None):
if clip:
mask = ma.getmask(result)
result = ma.array(np.clip(result.filled(vmax), vmin, vmax),
- mask=mask)
+ mask=mask)
# in-place equivalent of above can be much faster
resdat = self._transform(result.data)
resdat -= self._lower
@@ -1057,8 +1054,8 @@ def __call__(self, value, clip=None):
if is_scalar:
result = result[0]
return result
-
- def _transform(self, a):
+
+ def _transform(self, a):
"""
Inplace transformation.
"""
@@ -1069,7 +1066,7 @@ def _transform(self, a):
a[masked] = log
a[~masked] *= self._linscale_adj
return a
-
+
def _inv_transform(self, a):
"""
Inverse inplace Transformation.
@@ -1081,15 +1078,14 @@ def _inv_transform(self, a):
a[masked] = exp
a[~masked] /= self._linscale_adj
return a
-
+
def _transform_vmin_vmax(self):
"""
Calculates vmin and vmax in the transformed system.
"""
vmin, vmax = self.vmin, self.vmax
arr = np.array([vmax, vmin])
- self._upper, self._lower = self._transform(arr)
-
+ self._upper, self._lower = self._transform(arr)
def inverse(self, value):
if not self.scaled():
@@ -1097,15 +1093,15 @@ def inverse(self, value):
val = ma.asarray(value)
val = val * (self._upper - self._lower) + self._lower
return self._inv_transform(val)
-
+
def autoscale(self, A):
"""
Set *vmin*, *vmax* to min, max of *A*.
- """
+ """
self.vmin = ma.min(A)
self.vmax = ma.max(A)
self._transform_vmin_vmax()
-
+
def autoscale_None(self, A):
""" autoscale only None-valued vmin or vmax """
if self.vmin is not None and self.vmax is not None:
@@ -1355,8 +1351,8 @@ def shade_rgb(self, rgb, elevation, fraction=1.):
dx, dy = np.gradient(elevation)
slope = 0.5 * np.pi - np.arctan(np.hypot(dx, dy))
aspect = np.arctan2(dx, dy)
- intensity = np.sin(alt) * np.sin(slope) + np.cos(alt) *\
- np.cos(slope) * np.cos(-az - aspect - 0.5 * np.pi)
+ intensity = (np.sin(alt) * np.sin(slope) + np.cos(alt) *
+ np.cos(slope) * np.cos(-az - aspect - 0.5 * np.pi))
# rescale to interval -1,1
# +1 means maximum sun exposure and -1 means complete shade.
intensity = (intensity - intensity.min()) / \
@@ -1367,28 +1363,26 @@ def shade_rgb(self, rgb, elevation, fraction=1.):
hsv = rgb_to_hsv(rgb[:, :, 0:3])
# modify hsv values to simulate illumination.
- hsv[:, :, 1] = np.where(np.logical_and(
- np.abs(hsv[:, :, 1]) > 1.e-10,
- intensity > 0),
- (1. - intensity) * hsv[:, :, 1] +
- intensity * self.hsv_max_sat,
+ hsv[:, :, 1] = np.where(np.logical_and(np.abs(hsv[:, :, 1]) > 1.e-10,
+ intensity > 0),
+ ((1. - intensity) * hsv[:, :, 1] +
+ intensity * self.hsv_max_sat),
hsv[:, :, 1])
hsv[:, :, 2] = np.where(intensity > 0,
- (1. - intensity) * hsv[:, :, 2] +
- intensity * self.hsv_max_val,
+ ((1. - intensity) * hsv[:, :, 2] +
+ intensity * self.hsv_max_val),
hsv[:, :, 2])
- hsv[:, :, 1] = np.where(np.logical_and(
- np.abs(hsv[:, :, 1]) > 1.e-10,
- intensity < 0),
- (1. + intensity) * hsv[:, :, 1] -
- intensity * self.hsv_min_sat,
- hsv[:, :, 1])
+ hsv[:, :, 1] = np.where(np.logical_and(np.abs(hsv[:, :, 1]) > 1.e-10,
+ intensity < 0),
+ ((1. + intensity) * hsv[:, :, 1] -
+ intensity * self.hsv_min_sat),
+ hsv[:, :, 1])
hsv[:, :, 2] = np.where(intensity < 0,
- (1. + intensity) * hsv[:, :, 2] -
- intensity * self.hsv_min_val,
- hsv[:, :, 2])
+ ((1. + intensity) * hsv[:, :, 2] -
+ intensity * self.hsv_min_val),
+ hsv[:, :, 2])
hsv[:, :, 1:] = np.where(hsv[:, :, 1:] < 0., 0, hsv[:, :, 1:])
hsv[:, :, 1:] = np.where(hsv[:, :, 1:] > 1., 1, hsv[:, :, 1:])
# convert modified hsv back to rgb.
Please sign in to comment.
Something went wrong with that request. Please try again.