{-# LANGUAGE DeriveDataTypeable #-}
{-# LANGUAGE FlexibleContexts #-}
{-# LANGUAGE FlexibleInstances #-}
{-# LANGUAGE FunctionalDependencies #-}
{-# LANGUAGE MultiParamTypeClasses #-}
{-# LANGUAGE RankNTypes #-}
{-# LANGUAGE RecordWildCards #-}
{-# LANGUAGE TypeFamilies #-}
{-# LANGUAGE ViewPatterns #-}
module Plots.Style
(
AxisStyle
, HasAxisStyle (..)
, fadedColours
, fadedColours3D
, vividColours
, blackAndWhite
, PlotStyle
, HasPlotStyle (..)
, applyLineStyle
, applyMarkerStyle
, applyAreaStyle
, applyTextStyle
, colours1
, colours2
, asterisk
, diamond
, crossShape
, star'
, plus
, lineMarkers
, ColourMap
, ixColour
, ixColourR
, cmTraverse
, colourMap
, colourList
, toStops
, NanColours
, HasNanColours (..)
, viridis
, magma
, inferno
, plasma
, greys
) where
import qualified Control.Lens as Lens
import Data.Colour.SRGB
import qualified Data.Map as M
import Data.Typeable
import Diagrams.Prelude hiding (magma)
import Linear
import Diagrams.ThreeD.Attributes
import Geometry
data PlotStyle v = PlotStyle
{ _plotColour :: Colour Double
, _lineStyle :: Colour Double -> Style v Double
, _markerStyle :: Colour Double -> Style v Double
, _areaStyle :: Colour Double -> Style v Double
, _textStyle :: Colour Double -> Style v Double
, _plotMarker :: Diagram v
} deriving Typeable
type instance V (PlotStyle v) = v
type instance N (PlotStyle v) = Double
class HasPlotStyle f a where
plotStyle :: LensLike' f a (PlotStyle (V a))
plotColour :: Functor f => LensLike' f a (Colour Double)
plotColour = plotStyle . lens _plotColour (\p f -> p {_plotColour = f})
plotColor :: Functor f => LensLike' f a (Colour Double)
plotColor = plotColour
lineStyle :: Settable f => LensLike' f a (Style (V a) Double)
lineStyle = lineStyleFunction . mapped
lineStyleFunction :: Functor f => LensLike' f a (Colour Double -> Style (V a) Double)
lineStyleFunction = plotStyle . lens _lineStyle (\p f -> p {_lineStyle = f})
markerStyle :: Settable f => LensLike' f a (Style (V a) Double)
markerStyle = markerStyleFunction . mapped
markerStyleFunction :: Functor f => LensLike' f a (Colour Double -> Style (V a) Double)
markerStyleFunction = plotStyle . lens _markerStyle (\p f -> p {_markerStyle = f})
areaStyle :: Settable f => LensLike' f a (Style (V a) Double)
areaStyle = areaStyleFunction . mapped
areaStyleFunction :: Functor f => LensLike' f a (Colour Double -> Style (V a) Double)
areaStyleFunction = plotStyle . lens _areaStyle (\p f -> p {_areaStyle = f})
textStyle :: Settable f => LensLike' f a (Style (V a) Double)
textStyle = textStyleFunction . mapped
textStyleFunction :: Functor f => LensLike' f a (Colour Double -> Style (V a) Double)
textStyleFunction = plotStyle . lens _textStyle (\p f -> p {_textStyle = f})
plotMarker :: Functor f => LensLike' f a (Diagram (V a))
plotMarker = plotStyle . lens _plotMarker (\p f -> p {_plotMarker = f})
plotStyles :: Settable f => LensLike' f a (Style (V a) Double)
plotStyles = plotStyleFunctions . mapped
plotStyleFunctions :: Applicative f => LensLike' f a (Colour Double -> Style (V a) Double)
plotStyleFunctions = plotStyle . t
where
t f PlotStyle {..} = PlotStyle
<$> pure _plotColour
<*> f _lineStyle
<*> f _markerStyle
<*> f _areaStyle
<*> f _textStyle
<*> pure _plotMarker
instance HasPlotStyle f (PlotStyle v) where
plotStyle = id
applyLineStyle
:: (InSpace v Double t, ApplyStyle t)
=> PlotStyle v -> t -> t
applyLineStyle (view plotStyle -> sty) =
applyStyle $ (sty ^. lineStyleFunction) (sty ^. plotColour)
applyMarkerStyle
:: (InSpace v Double t, ApplyStyle t)
=> PlotStyle v -> t -> t
applyMarkerStyle (view plotStyle -> sty) =
applyStyle $ (sty ^. markerStyleFunction) (sty ^. plotColour)
applyAreaStyle
:: (InSpace v Double t, ApplyStyle t)
=> PlotStyle v -> t -> t
applyAreaStyle (view plotStyle -> sty) =
applyStyle $ (sty ^. areaStyleFunction) (sty ^. plotColour)
applyTextStyle
:: (InSpace v Double t, ApplyStyle t)
=> PlotStyle v -> t -> t
applyTextStyle (view plotStyle -> sty) =
applyStyle $ (sty ^. textStyleFunction) (sty ^. plotColour)
instance (Metric v, Traversable v) => Transformable (PlotStyle v) where
transform t = (plotMarker %~ transform t) . (plotStyles %~ transform t)
data AxisStyle v = AxisStyle ColourMap [PlotStyle v]
type instance V (AxisStyle v) = v
type instance N (AxisStyle v) = Double
class HasAxisStyle a where
axisStyle :: Lens' a (AxisStyle (V a))
axisColourMap :: Lens' a ColourMap
axisColourMap = axisStyle . cm
where cm f (AxisStyle c ss) = f c <&> \c' -> AxisStyle c' ss
axisStyles :: IndexedTraversal' Int a (PlotStyle (V a))
axisStyles = axisStyle . stys . traversed
where stys f (AxisStyle c ss) = f ss <&> \ss' -> AxisStyle c ss'
instance HasAxisStyle (AxisStyle v) where
axisStyle = id
instance Applicative f => HasPlotStyle f (AxisStyle v) where
plotStyle = axisStyles
fadedColours :: AxisStyle V2
fadedColours = AxisStyle viridis $
zipWith mkStyle (cycle colours1) (cycle $ map stroke filledMarkers)
where
mkStyle c = PlotStyle c lineS fadeS fadeS fillS
lineS c = mempty # lc c # lwO 3
fadeS c = mempty # fc (blend 0.1 white c) # lc c # lwO 1
fillS c = mempty # fc c # lw none
fadedColours3D :: AxisStyle V3
fadedColours3D = AxisStyle viridis $
zipWith mkStyle (cycle colours1) shapeMarkers
where
mkStyle c = PlotStyle c lineS fadeS fadeS fillS
lineS c = mempty # lwO 3 :: Style V3 Double
fadeS c = mempty # sc (blend 0.1 white c) # lwO 3 :: Style V3 Double
fillS c = mempty # sc c # lw none :: Style V3 Double
vividColours :: AxisStyle V2
vividColours = AxisStyle viridis $
zipWith mkStyle (cycle colours2) (cycle $ map (scale 1.2 . stroke) filledMarkers)
where
mkStyle c = PlotStyle c lineS markS fillS fillS
lineS c = mempty # lc c # lwO 3
markS c = mempty # fc c # lwO 1 # lc white
fillS c = mempty # fc c # lw none
blackAndWhite :: AxisStyle V2
blackAndWhite = AxisStyle greys $
zipWith3 mkStyle (cycle colours) (cycle lineStyles) (cycle $ map stroke filledMarkers)
where
mkStyle c ls = PlotStyle c ls markerS (mk fc) (mk fc)
mk f c = mempty # f c
markerS c = mempty # fc white # lc c
lineStyles = mempty : map (\ds -> mempty # dashingL ds 0) dashes
dashes = [[6,6], [6,2], [2,2], [6,8,3]]
colours = [black, blend 0.8 black white, blend 0.6 black white, blend 0.4 black white]
colours1 :: OrderedField n => [Colour n]
colours1 = cycle
[ sRGB24 228 26 28
, sRGB24 55 126 184
, sRGB24 77 175 74
, sRGB24 152 78 163
, sRGB24 255 127 0
, sRGB24 166 86 40
, sRGB24 247 129 191
, sRGB24 153 153 153
]
colours2 :: OrderedField n => [Colour n]
colours2 = cycle
[ sRGB24 27 158 119
, sRGB24 217 95 2
, sRGB24 117 112 179
, sRGB24 231 41 138
, sRGB24 102 166 30
, sRGB24 230 171 2
, sRGB24 166 118 29
, sRGB24 102 102 102
]
shapeMarkers :: [Diagram V3]
shapeMarkers = scale 11 $ cycle
[ cube
, sphere
, cone
]
filledMarkers :: RealFloat n => [Path V2 n]
filledMarkers = scale 11 . map (centerXY . toPath) $ cycle
[ circle 0.5 :: RealFloat n => Trail V2 n
, square 1
, triangle 1
, diamond (1 / sqrt 2)
, pentagon 0.6
, crossShape 1
, plus 1
, star' 0.8
]
lineMarkers :: OrderedField n => [Path V2 n]
lineMarkers = scale 11 $ cycle
[ asterisk 4 1 # rotateBy (1/8)
, asterisk 6 1
, asterisk 5 1
, asterisk 2 1
, asterisk 2 1 # rotateBy (1/4)
, asterisk 10 1
, asterisk 3 1
, asterisk 3 1 # rotateBy (1/2)
]
asterisk :: OrderedField n => Int -> n -> Path V2 n
asterisk n x
= mconcat . take n
. iterate (rotateBy (1/fromIntegral n))
$ fromVertices [origin, mkP2 0 x]
diamond :: (InSpace V2 n t, FromTrail t, OrderedField n) => n -> t
diamond = fromLocTrail . rotateBy (1/8) . square
crossShape :: (InSpace V2 n t, FromTrail t, OrderedField n) => n -> t
crossShape = fromLocTrail . rotateBy (1/8) . plus
plus :: (InSpace V2 n t, FromTrail t, OrderedField n) => n -> t
plus x = fromLocLoop . (`at` mkP2 (x/6) (x/6))
. glueLine . mconcat . take 4
. iterate (rotateBy (1/4)) . (^?! _init)
$ square (x/3)
star' :: (InSpace V2 n t, FromTrail t, OrderedField n) => n -> t
star' x = fromLocLoop . (`at` mkP2 (-x/6) (x/6))
. glueLine . mconcat . take 5
. iterate (rotateBy (-1/5)) $ spoke
where
spoke = fromOffsets . map r2 $ [(x/6,x/2), (x/6,-x/2)]
data NanColours = NanColours
{ _nanColour :: Colour Double
, _infColour :: Colour Double
, _negInfColour :: Colour Double
} deriving Show
class HasNanColours a where
nanColours :: Lens' a NanColours
nanColour :: Lens' a (Colour Double)
nanColour = nanColours . lens _nanColour (\n c -> n {_nanColour = c})
infColour :: Lens' a (Colour Double)
infColour = nanColours . lens _infColour (\n c -> n {_infColour = c})
negInfColour :: Lens' a (Colour Double)
negInfColour = nanColours . lens _negInfColour (\n c -> n {_negInfColour = c})
instance HasNanColours NanColours where
nanColours = id
instance Default NanColours where
def = NanColours
{ _nanColour = magenta
, _infColour = white
, _negInfColour = black
}
data ColourMap = ColourMap NanColours (M.Map Rational (Colour Double))
deriving Show
type instance V ColourMap = V1
type instance N ColourMap = Rational
cmap :: Lens' ColourMap (M.Map Rational (Colour Double))
cmap f (ColourMap ncs cs) = f cs <&> \cs' -> ColourMap ncs cs'
instance HasNanColours ColourMap where
nanColours f (ColourMap ncs cs) = f ncs <&> \ncs' -> ColourMap ncs' cs
p1apply :: Num a => Transformation V1 a -> a -> a
p1apply t a = papply t (P (V1 a)) ^. _x
instance Transformable ColourMap where
transform t = over (cmap . _Wrapped' . mapped . _1) (p1apply t)
type instance Index ColourMap = Rational
type instance IxValue ColourMap = Colour Double
instance Each ColourMap ColourMap (Colour Double) (Colour Double) where
each = cmap . each
instance Ixed ColourMap where
ix = ixColourR
instance At ColourMap where
at x = ixColourR x . from (non black)
ixColour :: Double -> Lens' ColourMap (Colour Double)
ixColour x f cM@(ColourMap ncs cm)
| isNaN x = nanColour f cM
| isInfinite x = if x < 0 then negInfColour f cM else infColour f cM
| otherwise = f c <&> \c' -> ColourMap ncs (M.insert r c' cm)
where
r = toRational x
c = case (M.lookupLE r cm, M.lookupGE r cm) of
(Just (i,c1), Just (j,c2))
| i == j -> c1
| otherwise ->
let a = fromRational $ (r - i) / (j - i)
in blend a c2 c1
(Just (_,c1), Nothing) -> c1
(Nothing, Just (_,c2)) -> c2
_ -> black
ixColourR :: Rational -> Lens' ColourMap (Colour Double)
ixColourR x f (ColourMap ncs cm) = f c <&> \c' -> ColourMap ncs (M.insert x c' cm)
where
c = case (M.lookupLE x cm, M.lookupGE x cm) of
(Just (i,c1), Just (j,c2))
| i == j -> c1
| otherwise ->
let a = fromRational $ (x - i) / (j - i)
in blend a c2 c1
(Just (_,c1), Nothing) -> c1
(Nothing, Just (_,c2)) -> c2
_ -> black
cmTraverse :: IndexedTraversal' Rational ColourMap (Colour Double)
cmTraverse = cmap . itraversed
colourList :: ColourMap -> [(Rational, Colour Double)]
colourList = itoListOf (cmTraverse . ifiltered (\i _ -> i >= 0 && i <= 1))
. (ixColourR 0 %~ id) . (ixColourR 1 %~ id)
colourMap :: [(Rational, Colour Double)] -> ColourMap
colourMap [] = ColourMap def M.empty
colourMap cs
| a == b = ColourMap def (M.singleton 0.5 c)
| otherwise = ColourMap def (M.mapKeysMonotonic normalise cm)
where
cm = M.fromList cs
(a,c) = M.findMin cm
(b,_) = M.findMax cm
normalise x = (x - a) / (b - a)
toStops :: ColourMap -> [GradientStop]
toStops = map (\(x,c) -> GradientStop (opaque c) (fromRational x))
. colourList
greys :: ColourMap
greys = colourMap [(0, black), (1, white)]
magma :: ColourMap
magma = colourMap $ zip [1..]
[ sRGB 0.001462 0.000466 0.013866, sRGB 0.002258 0.001295 0.018331
, sRGB 0.003279 0.002305 0.023708, sRGB 0.004512 0.003490 0.029965
, sRGB 0.005950 0.004843 0.037130, sRGB 0.007588 0.006356 0.044973
, sRGB 0.009426 0.008022 0.052844, sRGB 0.011465 0.009828 0.060750
, sRGB 0.013708 0.011771 0.068667, sRGB 0.016156 0.013840 0.076603
, sRGB 0.018815 0.016026 0.084584, sRGB 0.021692 0.018320 0.092610
, sRGB 0.024792 0.020715 0.100676, sRGB 0.028123 0.023201 0.108787
, sRGB 0.031696 0.025765 0.116965, sRGB 0.035520 0.028397 0.125209
, sRGB 0.039608 0.031090 0.133515, sRGB 0.043830 0.033830 0.141886
, sRGB 0.048062 0.036607 0.150327, sRGB 0.052320 0.039407 0.158841
, sRGB 0.056615 0.042160 0.167446, sRGB 0.060949 0.044794 0.176129
, sRGB 0.065330 0.047318 0.184892, sRGB 0.069764 0.049726 0.193735
, sRGB 0.074257 0.052017 0.202660, sRGB 0.078815 0.054184 0.211667
, sRGB 0.083446 0.056225 0.220755, sRGB 0.088155 0.058133 0.229922
, sRGB 0.092949 0.059904 0.239164, sRGB 0.097833 0.061531 0.248477
, sRGB 0.102815 0.063010 0.257854, sRGB 0.107899 0.064335 0.267289
, sRGB 0.113094 0.065492 0.276784, sRGB 0.118405 0.066479 0.286321
, sRGB 0.123833 0.067295 0.295879, sRGB 0.129380 0.067935 0.305443
, sRGB 0.135053 0.068391 0.315000, sRGB 0.140858 0.068654 0.324538
, sRGB 0.146785 0.068738 0.334011, sRGB 0.152839 0.068637 0.343404
, sRGB 0.159018 0.068354 0.352688, sRGB 0.165308 0.067911 0.361816
, sRGB 0.171713 0.067305 0.370771, sRGB 0.178212 0.066576 0.379497
, sRGB 0.184801 0.065732 0.387973, sRGB 0.191460 0.064818 0.396152
, sRGB 0.198177 0.063862 0.404009, sRGB 0.204935 0.062907 0.411514
, sRGB 0.211718 0.061992 0.418647, sRGB 0.218512 0.061158 0.425392
, sRGB 0.225302 0.060445 0.431742, sRGB 0.232077 0.059889 0.437695
, sRGB 0.238826 0.059517 0.443256, sRGB 0.245543 0.059352 0.448436
, sRGB 0.252220 0.059415 0.453248, sRGB 0.258857 0.059706 0.457710
, sRGB 0.265447 0.060237 0.461840, sRGB 0.271994 0.060994 0.465660
, sRGB 0.278493 0.061978 0.469190, sRGB 0.284951 0.063168 0.472451
, sRGB 0.291366 0.064553 0.475462, sRGB 0.297740 0.066117 0.478243
, sRGB 0.304081 0.067835 0.480812, sRGB 0.310382 0.069702 0.483186
, sRGB 0.316654 0.071690 0.485380, sRGB 0.322899 0.073782 0.487408
, sRGB 0.329114 0.075972 0.489287, sRGB 0.335308 0.078236 0.491024
, sRGB 0.341482 0.080564 0.492631, sRGB 0.347636 0.082946 0.494121
, sRGB 0.353773 0.085373 0.495501, sRGB 0.359898 0.087831 0.496778
, sRGB 0.366012 0.090314 0.497960, sRGB 0.372116 0.092816 0.499053
, sRGB 0.378211 0.095332 0.500067, sRGB 0.384299 0.097855 0.501002
, sRGB 0.390384 0.100379 0.501864, sRGB 0.396467 0.102902 0.502658
, sRGB 0.402548 0.105420 0.503386, sRGB 0.408629 0.107930 0.504052
, sRGB 0.414709 0.110431 0.504662, sRGB 0.420791 0.112920 0.505215
, sRGB 0.426877 0.115395 0.505714, sRGB 0.432967 0.117855 0.506160
, sRGB 0.439062 0.120298 0.506555, sRGB 0.445163 0.122724 0.506901
, sRGB 0.451271 0.125132 0.507198, sRGB 0.457386 0.127522 0.507448
, sRGB 0.463508 0.129893 0.507652, sRGB 0.469640 0.132245 0.507809
, sRGB 0.475780 0.134577 0.507921, sRGB 0.481929 0.136891 0.507989
, sRGB 0.488088 0.139186 0.508011, sRGB 0.494258 0.141462 0.507988
, sRGB 0.500438 0.143719 0.507920, sRGB 0.506629 0.145958 0.507806
, sRGB 0.512831 0.148179 0.507648, sRGB 0.519045 0.150383 0.507443
, sRGB 0.525270 0.152569 0.507192, sRGB 0.531507 0.154739 0.506895
, sRGB 0.537755 0.156894 0.506551, sRGB 0.544015 0.159033 0.506159
, sRGB 0.550287 0.161158 0.505719, sRGB 0.556571 0.163269 0.505230
, sRGB 0.562866 0.165368 0.504692, sRGB 0.569172 0.167454 0.504105
, sRGB 0.575490 0.169530 0.503466, sRGB 0.581819 0.171596 0.502777
, sRGB 0.588158 0.173652 0.502035, sRGB 0.594508 0.175701 0.501241
, sRGB 0.600868 0.177743 0.500394, sRGB 0.607238 0.179779 0.499492
, sRGB 0.613617 0.181811 0.498536, sRGB 0.620005 0.183840 0.497524
, sRGB 0.626401 0.185867 0.496456, sRGB 0.632805 0.187893 0.495332
, sRGB 0.639216 0.189921 0.494150, sRGB 0.645633 0.191952 0.492910
, sRGB 0.652056 0.193986 0.491611, sRGB 0.658483 0.196027 0.490253
, sRGB 0.664915 0.198075 0.488836, sRGB 0.671349 0.200133 0.487358
, sRGB 0.677786 0.202203 0.485819, sRGB 0.684224 0.204286 0.484219
, sRGB 0.690661 0.206384 0.482558, sRGB 0.697098 0.208501 0.480835
, sRGB 0.703532 0.210638 0.479049, sRGB 0.709962 0.212797 0.477201
, sRGB 0.716387 0.214982 0.475290, sRGB 0.722805 0.217194 0.473316
, sRGB 0.729216 0.219437 0.471279, sRGB 0.735616 0.221713 0.469180
, sRGB 0.742004 0.224025 0.467018, sRGB 0.748378 0.226377 0.464794
, sRGB 0.754737 0.228772 0.462509, sRGB 0.761077 0.231214 0.460162
, sRGB 0.767398 0.233705 0.457755, sRGB 0.773695 0.236249 0.455289
, sRGB 0.779968 0.238851 0.452765, sRGB 0.786212 0.241514 0.450184
, sRGB 0.792427 0.244242 0.447543, sRGB 0.798608 0.247040 0.444848
, sRGB 0.804752 0.249911 0.442102, sRGB 0.810855 0.252861 0.439305
, sRGB 0.816914 0.255895 0.436461, sRGB 0.822926 0.259016 0.433573
, sRGB 0.828886 0.262229 0.430644, sRGB 0.834791 0.265540 0.427671
, sRGB 0.840636 0.268953 0.424666, sRGB 0.846416 0.272473 0.421631
, sRGB 0.852126 0.276106 0.418573, sRGB 0.857763 0.279857 0.415496
, sRGB 0.863320 0.283729 0.412403, sRGB 0.868793 0.287728 0.409303
, sRGB 0.874176 0.291859 0.406205, sRGB 0.879464 0.296125 0.403118
, sRGB 0.884651 0.300530 0.400047, sRGB 0.889731 0.305079 0.397002
, sRGB 0.894700 0.309773 0.393995, sRGB 0.899552 0.314616 0.391037
, sRGB 0.904281 0.319610 0.388137, sRGB 0.908884 0.324755 0.385308
, sRGB 0.913354 0.330052 0.382563, sRGB 0.917689 0.335500 0.379915
, sRGB 0.921884 0.341098 0.377376, sRGB 0.925937 0.346844 0.374959
, sRGB 0.929845 0.352734 0.372677, sRGB 0.933606 0.358764 0.370541
, sRGB 0.937221 0.364929 0.368567, sRGB 0.940687 0.371224 0.366762
, sRGB 0.944006 0.377643 0.365136, sRGB 0.947180 0.384178 0.363701
, sRGB 0.950210 0.390820 0.362468, sRGB 0.953099 0.397563 0.361438
, sRGB 0.955849 0.404400 0.360619, sRGB 0.958464 0.411324 0.360014
, sRGB 0.960949 0.418323 0.359630, sRGB 0.963310 0.425390 0.359469
, sRGB 0.965549 0.432519 0.359529, sRGB 0.967671 0.439703 0.359810
, sRGB 0.969680 0.446936 0.360311, sRGB 0.971582 0.454210 0.361030
, sRGB 0.973381 0.461520 0.361965, sRGB 0.975082 0.468861 0.363111
, sRGB 0.976690 0.476226 0.364466, sRGB 0.978210 0.483612 0.366025
, sRGB 0.979645 0.491014 0.367783, sRGB 0.981000 0.498428 0.369734
, sRGB 0.982279 0.505851 0.371874, sRGB 0.983485 0.513280 0.374198
, sRGB 0.984622 0.520713 0.376698, sRGB 0.985693 0.528148 0.379371
, sRGB 0.986700 0.535582 0.382210, sRGB 0.987646 0.543015 0.385210
, sRGB 0.988533 0.550446 0.388365, sRGB 0.989363 0.557873 0.391671
, sRGB 0.990138 0.565296 0.395122, sRGB 0.990871 0.572706 0.398714
, sRGB 0.991558 0.580107 0.402441, sRGB 0.992196 0.587502 0.406299
, sRGB 0.992785 0.594891 0.410283, sRGB 0.993326 0.602275 0.414390
, sRGB 0.993834 0.609644 0.418613, sRGB 0.994309 0.616999 0.422950
, sRGB 0.994738 0.624350 0.427397, sRGB 0.995122 0.631696 0.431951
, sRGB 0.995480 0.639027 0.436607, sRGB 0.995810 0.646344 0.441361
, sRGB 0.996096 0.653659 0.446213, sRGB 0.996341 0.660969 0.451160
, sRGB 0.996580 0.668256 0.456192, sRGB 0.996775 0.675541 0.461314
, sRGB 0.996925 0.682828 0.466526, sRGB 0.997077 0.690088 0.471811
, sRGB 0.997186 0.697349 0.477182, sRGB 0.997254 0.704611 0.482635
, sRGB 0.997325 0.711848 0.488154, sRGB 0.997351 0.719089 0.493755
, sRGB 0.997351 0.726324 0.499428, sRGB 0.997341 0.733545 0.505167
, sRGB 0.997285 0.740772 0.510983, sRGB 0.997228 0.747981 0.516859
, sRGB 0.997138 0.755190 0.522806, sRGB 0.997019 0.762398 0.528821
, sRGB 0.996898 0.769591 0.534892, sRGB 0.996727 0.776795 0.541039
, sRGB 0.996571 0.783977 0.547233, sRGB 0.996369 0.791167 0.553499
, sRGB 0.996162 0.798348 0.559820, sRGB 0.995932 0.805527 0.566202
, sRGB 0.995680 0.812706 0.572645, sRGB 0.995424 0.819875 0.579140
, sRGB 0.995131 0.827052 0.585701, sRGB 0.994851 0.834213 0.592307
, sRGB 0.994524 0.841387 0.598983, sRGB 0.994222 0.848540 0.605696
, sRGB 0.993866 0.855711 0.612482, sRGB 0.993545 0.862859 0.619299
, sRGB 0.993170 0.870024 0.626189, sRGB 0.992831 0.877168 0.633109
, sRGB 0.992440 0.884330 0.640099, sRGB 0.992089 0.891470 0.647116
, sRGB 0.991688 0.898627 0.654202, sRGB 0.991332 0.905763 0.661309
, sRGB 0.990930 0.912915 0.668481, sRGB 0.990570 0.920049 0.675675
, sRGB 0.990175 0.927196 0.682926, sRGB 0.989815 0.934329 0.690198
, sRGB 0.989434 0.941470 0.697519, sRGB 0.989077 0.948604 0.704863
, sRGB 0.988717 0.955742 0.712242, sRGB 0.988367 0.962878 0.719649
, sRGB 0.988033 0.970012 0.727077, sRGB 0.987691 0.977154 0.734536
, sRGB 0.987387 0.984288 0.742002, sRGB 0.987053 0.991438 0.749504
]
inferno :: ColourMap
inferno = colourMap $ zip [1..]
[ sRGB 0.001462 0.000466 0.013866, sRGB 0.002267 0.001270 0.018570
, sRGB 0.003299 0.002249 0.024239, sRGB 0.004547 0.003392 0.030909
, sRGB 0.006006 0.004692 0.038558, sRGB 0.007676 0.006136 0.046836
, sRGB 0.009561 0.007713 0.055143, sRGB 0.011663 0.009417 0.063460
, sRGB 0.013995 0.011225 0.071862, sRGB 0.016561 0.013136 0.080282
, sRGB 0.019373 0.015133 0.088767, sRGB 0.022447 0.017199 0.097327
, sRGB 0.025793 0.019331 0.105930, sRGB 0.029432 0.021503 0.114621
, sRGB 0.033385 0.023702 0.123397, sRGB 0.037668 0.025921 0.132232
, sRGB 0.042253 0.028139 0.141141, sRGB 0.046915 0.030324 0.150164
, sRGB 0.051644 0.032474 0.159254, sRGB 0.056449 0.034569 0.168414
, sRGB 0.061340 0.036590 0.177642, sRGB 0.066331 0.038504 0.186962
, sRGB 0.071429 0.040294 0.196354, sRGB 0.076637 0.041905 0.205799
, sRGB 0.081962 0.043328 0.215289, sRGB 0.087411 0.044556 0.224813
, sRGB 0.092990 0.045583 0.234358, sRGB 0.098702 0.046402 0.243904
, sRGB 0.104551 0.047008 0.253430, sRGB 0.110536 0.047399 0.262912
, sRGB 0.116656 0.047574 0.272321, sRGB 0.122908 0.047536 0.281624
, sRGB 0.129285 0.047293 0.290788, sRGB 0.135778 0.046856 0.299776
, sRGB 0.142378 0.046242 0.308553, sRGB 0.149073 0.045468 0.317085
, sRGB 0.155850 0.044559 0.325338, sRGB 0.162689 0.043554 0.333277
, sRGB 0.169575 0.042489 0.340874, sRGB 0.176493 0.041402 0.348111
, sRGB 0.183429 0.040329 0.354971, sRGB 0.190367 0.039309 0.361447
, sRGB 0.197297 0.038400 0.367535, sRGB 0.204209 0.037632 0.373238
, sRGB 0.211095 0.037030 0.378563, sRGB 0.217949 0.036615 0.383522
, sRGB 0.224763 0.036405 0.388129, sRGB 0.231538 0.036405 0.392400
, sRGB 0.238273 0.036621 0.396353, sRGB 0.244967 0.037055 0.400007
, sRGB 0.251620 0.037705 0.403378, sRGB 0.258234 0.038571 0.406485
, sRGB 0.264810 0.039647 0.409345, sRGB 0.271347 0.040922 0.411976
, sRGB 0.277850 0.042353 0.414392, sRGB 0.284321 0.043933 0.416608
, sRGB 0.290763 0.045644 0.418637, sRGB 0.297178 0.047470 0.420491
, sRGB 0.303568 0.049396 0.422182, sRGB 0.309935 0.051407 0.423721
, sRGB 0.316282 0.053490 0.425116, sRGB 0.322610 0.055634 0.426377
, sRGB 0.328921 0.057827 0.427511, sRGB 0.335217 0.060060 0.428524
, sRGB 0.341500 0.062325 0.429425, sRGB 0.347771 0.064616 0.430217
, sRGB 0.354032 0.066925 0.430906, sRGB 0.360284 0.069247 0.431497
, sRGB 0.366529 0.071579 0.431994, sRGB 0.372768 0.073915 0.432400
, sRGB 0.379001 0.076253 0.432719, sRGB 0.385228 0.078591 0.432955
, sRGB 0.391453 0.080927 0.433109, sRGB 0.397674 0.083257 0.433183
, sRGB 0.403894 0.085580 0.433179, sRGB 0.410113 0.087896 0.433098
, sRGB 0.416331 0.090203 0.432943, sRGB 0.422549 0.092501 0.432714
, sRGB 0.428768 0.094790 0.432412, sRGB 0.434987 0.097069 0.432039
, sRGB 0.441207 0.099338 0.431594, sRGB 0.447428 0.101597 0.431080
, sRGB 0.453651 0.103848 0.430498, sRGB 0.459875 0.106089 0.429846
, sRGB 0.466100 0.108322 0.429125, sRGB 0.472328 0.110547 0.428334
, sRGB 0.478558 0.112764 0.427475, sRGB 0.484789 0.114974 0.426548
, sRGB 0.491022 0.117179 0.425552, sRGB 0.497257 0.119379 0.424488
, sRGB 0.503493 0.121575 0.423356, sRGB 0.509730 0.123769 0.422156
, sRGB 0.515967 0.125960 0.420887, sRGB 0.522206 0.128150 0.419549
, sRGB 0.528444 0.130341 0.418142, sRGB 0.534683 0.132534 0.416667
, sRGB 0.540920 0.134729 0.415123, sRGB 0.547157 0.136929 0.413511
, sRGB 0.553392 0.139134 0.411829, sRGB 0.559624 0.141346 0.410078
, sRGB 0.565854 0.143567 0.408258, sRGB 0.572081 0.145797 0.406369
, sRGB 0.578304 0.148039 0.404411, sRGB 0.584521 0.150294 0.402385
, sRGB 0.590734 0.152563 0.400290, sRGB 0.596940 0.154848 0.398125
, sRGB 0.603139 0.157151 0.395891, sRGB 0.609330 0.159474 0.393589
, sRGB 0.615513 0.161817 0.391219, sRGB 0.621685 0.164184 0.388781
, sRGB 0.627847 0.166575 0.386276, sRGB 0.633998 0.168992 0.383704
, sRGB 0.640135 0.171438 0.381065, sRGB 0.646260 0.173914 0.378359
, sRGB 0.652369 0.176421 0.375586, sRGB 0.658463 0.178962 0.372748
, sRGB 0.664540 0.181539 0.369846, sRGB 0.670599 0.184153 0.366879
, sRGB 0.676638 0.186807 0.363849, sRGB 0.682656 0.189501 0.360757
, sRGB 0.688653 0.192239 0.357603, sRGB 0.694627 0.195021 0.354388
, sRGB 0.700576 0.197851 0.351113, sRGB 0.706500 0.200728 0.347777
, sRGB 0.712396 0.203656 0.344383, sRGB 0.718264 0.206636 0.340931
, sRGB 0.724103 0.209670 0.337424, sRGB 0.729909 0.212759 0.333861
, sRGB 0.735683 0.215906 0.330245, sRGB 0.741423 0.219112 0.326576
, sRGB 0.747127 0.222378 0.322856, sRGB 0.752794 0.225706 0.319085
, sRGB 0.758422 0.229097 0.315266, sRGB 0.764010 0.232554 0.311399
, sRGB 0.769556 0.236077 0.307485, sRGB 0.775059 0.239667 0.303526
, sRGB 0.780517 0.243327 0.299523, sRGB 0.785929 0.247056 0.295477
, sRGB 0.791293 0.250856 0.291390, sRGB 0.796607 0.254728 0.287264
, sRGB 0.801871 0.258674 0.283099, sRGB 0.807082 0.262692 0.278898
, sRGB 0.812239 0.266786 0.274661, sRGB 0.817341 0.270954 0.270390
, sRGB 0.822386 0.275197 0.266085, sRGB 0.827372 0.279517 0.261750
, sRGB 0.832299 0.283913 0.257383, sRGB 0.837165 0.288385 0.252988
, sRGB 0.841969 0.292933 0.248564, sRGB 0.846709 0.297559 0.244113
, sRGB 0.851384 0.302260 0.239636, sRGB 0.855992 0.307038 0.235133
, sRGB 0.860533 0.311892 0.230606, sRGB 0.865006 0.316822 0.226055
, sRGB 0.869409 0.321827 0.221482, sRGB 0.873741 0.326906 0.216886
, sRGB 0.878001 0.332060 0.212268, sRGB 0.882188 0.337287 0.207628
, sRGB 0.886302 0.342586 0.202968, sRGB 0.890341 0.347957 0.198286
, sRGB 0.894305 0.353399 0.193584, sRGB 0.898192 0.358911 0.188860
, sRGB 0.902003 0.364492 0.184116, sRGB 0.905735 0.370140 0.179350
, sRGB 0.909390 0.375856 0.174563, sRGB 0.912966 0.381636 0.169755
, sRGB 0.916462 0.387481 0.164924, sRGB 0.919879 0.393389 0.160070
, sRGB 0.923215 0.399359 0.155193, sRGB 0.926470 0.405389 0.150292
, sRGB 0.929644 0.411479 0.145367, sRGB 0.932737 0.417627 0.140417
, sRGB 0.935747 0.423831 0.135440, sRGB 0.938675 0.430091 0.130438
, sRGB 0.941521 0.436405 0.125409, sRGB 0.944285 0.442772 0.120354
, sRGB 0.946965 0.449191 0.115272, sRGB 0.949562 0.455660 0.110164
, sRGB 0.952075 0.462178 0.105031, sRGB 0.954506 0.468744 0.099874
, sRGB 0.956852 0.475356 0.094695, sRGB 0.959114 0.482014 0.089499
, sRGB 0.961293 0.488716 0.084289, sRGB 0.963387 0.495462 0.079073
, sRGB 0.965397 0.502249 0.073859, sRGB 0.967322 0.509078 0.068659
, sRGB 0.969163 0.515946 0.063488, sRGB 0.970919 0.522853 0.058367
, sRGB 0.972590 0.529798 0.053324, sRGB 0.974176 0.536780 0.048392
, sRGB 0.975677 0.543798 0.043618, sRGB 0.977092 0.550850 0.039050
, sRGB 0.978422 0.557937 0.034931, sRGB 0.979666 0.565057 0.031409
, sRGB 0.980824 0.572209 0.028508, sRGB 0.981895 0.579392 0.026250
, sRGB 0.982881 0.586606 0.024661, sRGB 0.983779 0.593849 0.023770
, sRGB 0.984591 0.601122 0.023606, sRGB 0.985315 0.608422 0.024202
, sRGB 0.985952 0.615750 0.025592, sRGB 0.986502 0.623105 0.027814
, sRGB 0.986964 0.630485 0.030908, sRGB 0.987337 0.637890 0.034916
, sRGB 0.987622 0.645320 0.039886, sRGB 0.987819 0.652773 0.045581
, sRGB 0.987926 0.660250 0.051750, sRGB 0.987945 0.667748 0.058329
, sRGB 0.987874 0.675267 0.065257, sRGB 0.987714 0.682807 0.072489
, sRGB 0.987464 0.690366 0.079990, sRGB 0.987124 0.697944 0.087731
, sRGB 0.986694 0.705540 0.095694, sRGB 0.986175 0.713153 0.103863
, sRGB 0.985566 0.720782 0.112229, sRGB 0.984865 0.728427 0.120785
, sRGB 0.984075 0.736087 0.129527, sRGB 0.983196 0.743758 0.138453
, sRGB 0.982228 0.751442 0.147565, sRGB 0.981173 0.759135 0.156863
, sRGB 0.980032 0.766837 0.166353, sRGB 0.978806 0.774545 0.176037
, sRGB 0.977497 0.782258 0.185923, sRGB 0.976108 0.789974 0.196018
, sRGB 0.974638 0.797692 0.206332, sRGB 0.973088 0.805409 0.216877
, sRGB 0.971468 0.813122 0.227658, sRGB 0.969783 0.820825 0.238686
, sRGB 0.968041 0.828515 0.249972, sRGB 0.966243 0.836191 0.261534
, sRGB 0.964394 0.843848 0.273391, sRGB 0.962517 0.851476 0.285546
, sRGB 0.960626 0.859069 0.298010, sRGB 0.958720 0.866624 0.310820
, sRGB 0.956834 0.874129 0.323974, sRGB 0.954997 0.881569 0.337475
, sRGB 0.953215 0.888942 0.351369, sRGB 0.951546 0.896226 0.365627
, sRGB 0.950018 0.903409 0.380271, sRGB 0.948683 0.910473 0.395289
, sRGB 0.947594 0.917399 0.410665, sRGB 0.946809 0.924168 0.426373
, sRGB 0.946392 0.930761 0.442367, sRGB 0.946403 0.937159 0.458592
, sRGB 0.946903 0.943348 0.474970, sRGB 0.947937 0.949318 0.491426
, sRGB 0.949545 0.955063 0.507860, sRGB 0.951740 0.960587 0.524203
, sRGB 0.954529 0.965896 0.540361, sRGB 0.957896 0.971003 0.556275
, sRGB 0.961812 0.975924 0.571925, sRGB 0.966249 0.980678 0.587206
, sRGB 0.971162 0.985282 0.602154, sRGB 0.976511 0.989753 0.616760
, sRGB 0.982257 0.994109 0.631017, sRGB 0.988362 0.998364 0.644924
]
plasma :: ColourMap
plasma = colourMap $ zip [1..]
[ sRGB 0.050383 0.029803 0.527975, sRGB 0.063536 0.028426 0.533124
, sRGB 0.075353 0.027206 0.538007, sRGB 0.086222 0.026125 0.542658
, sRGB 0.096379 0.025165 0.547103, sRGB 0.105980 0.024309 0.551368
, sRGB 0.115124 0.023556 0.555468, sRGB 0.123903 0.022878 0.559423
, sRGB 0.132381 0.022258 0.563250, sRGB 0.140603 0.021687 0.566959
, sRGB 0.148607 0.021154 0.570562, sRGB 0.156421 0.020651 0.574065
, sRGB 0.164070 0.020171 0.577478, sRGB 0.171574 0.019706 0.580806
, sRGB 0.178950 0.019252 0.584054, sRGB 0.186213 0.018803 0.587228
, sRGB 0.193374 0.018354 0.590330, sRGB 0.200445 0.017902 0.593364
, sRGB 0.207435 0.017442 0.596333, sRGB 0.214350 0.016973 0.599239
, sRGB 0.221197 0.016497 0.602083, sRGB 0.227983 0.016007 0.604867
, sRGB 0.234715 0.015502 0.607592, sRGB 0.241396 0.014979 0.610259
, sRGB 0.248032 0.014439 0.612868, sRGB 0.254627 0.013882 0.615419
, sRGB 0.261183 0.013308 0.617911, sRGB 0.267703 0.012716 0.620346
, sRGB 0.274191 0.012109 0.622722, sRGB 0.280648 0.011488 0.625038
, sRGB 0.287076 0.010855 0.627295, sRGB 0.293478 0.010213 0.629490
, sRGB 0.299855 0.009561 0.631624, sRGB 0.306210 0.008902 0.633694
, sRGB 0.312543 0.008239 0.635700, sRGB 0.318856 0.007576 0.637640
, sRGB 0.325150 0.006915 0.639512, sRGB 0.331426 0.006261 0.641316
, sRGB 0.337683 0.005618 0.643049, sRGB 0.343925 0.004991 0.644710
, sRGB 0.350150 0.004382 0.646298, sRGB 0.356359 0.003798 0.647810
, sRGB 0.362553 0.003243 0.649245, sRGB 0.368733 0.002724 0.650601
, sRGB 0.374897 0.002245 0.651876, sRGB 0.381047 0.001814 0.653068
, sRGB 0.387183 0.001434 0.654177, sRGB 0.393304 0.001114 0.655199
, sRGB 0.399411 0.000859 0.656133, sRGB 0.405503 0.000678 0.656977
, sRGB 0.411580 0.000577 0.657730, sRGB 0.417642 0.000564 0.658390
, sRGB 0.423689 0.000646 0.658956, sRGB 0.429719 0.000831 0.659425
, sRGB 0.435734 0.001127 0.659797, sRGB 0.441732 0.001540 0.660069
, sRGB 0.447714 0.002080 0.660240, sRGB 0.453677 0.002755 0.660310
, sRGB 0.459623 0.003574 0.660277, sRGB 0.465550 0.004545 0.660139
, sRGB 0.471457 0.005678 0.659897, sRGB 0.477344 0.006980 0.659549
, sRGB 0.483210 0.008460 0.659095, sRGB 0.489055 0.010127 0.658534
, sRGB 0.494877 0.011990 0.657865, sRGB 0.500678 0.014055 0.657088
, sRGB 0.506454 0.016333 0.656202, sRGB 0.512206 0.018833 0.655209
, sRGB 0.517933 0.021563 0.654109, sRGB 0.523633 0.024532 0.652901
, sRGB 0.529306 0.027747 0.651586, sRGB 0.534952 0.031217 0.650165
, sRGB 0.540570 0.034950 0.648640, sRGB 0.546157 0.038954 0.647010
, sRGB 0.551715 0.043136 0.645277, sRGB 0.557243 0.047331 0.643443
, sRGB 0.562738 0.051545 0.641509, sRGB 0.568201 0.055778 0.639477
, sRGB 0.573632 0.060028 0.637349, sRGB 0.579029 0.064296 0.635126
, sRGB 0.584391 0.068579 0.632812, sRGB 0.589719 0.072878 0.630408
, sRGB 0.595011 0.077190 0.627917, sRGB 0.600266 0.081516 0.625342
, sRGB 0.605485 0.085854 0.622686, sRGB 0.610667 0.090204 0.619951
, sRGB 0.615812 0.094564 0.617140, sRGB 0.620919 0.098934 0.614257
, sRGB 0.625987 0.103312 0.611305, sRGB 0.631017 0.107699 0.608287
, sRGB 0.636008 0.112092 0.605205, sRGB 0.640959 0.116492 0.602065
, sRGB 0.645872 0.120898 0.598867, sRGB 0.650746 0.125309 0.595617
, sRGB 0.655580 0.129725 0.592317, sRGB 0.660374 0.134144 0.588971
, sRGB 0.665129 0.138566 0.585582, sRGB 0.669845 0.142992 0.582154
, sRGB 0.674522 0.147419 0.578688, sRGB 0.679160 0.151848 0.575189
, sRGB 0.683758 0.156278 0.571660, sRGB 0.688318 0.160709 0.568103
, sRGB 0.692840 0.165141 0.564522, sRGB 0.697324 0.169573 0.560919
, sRGB 0.701769 0.174005 0.557296, sRGB 0.706178 0.178437 0.553657
, sRGB 0.710549 0.182868 0.550004, sRGB 0.714883 0.187299 0.546338
, sRGB 0.719181 0.191729 0.542663, sRGB 0.723444 0.196158 0.538981
, sRGB 0.727670 0.200586 0.535293, sRGB 0.731862 0.205013 0.531601
, sRGB 0.736019 0.209439 0.527908, sRGB 0.740143 0.213864 0.524216
, sRGB 0.744232 0.218288 0.520524, sRGB 0.748289 0.222711 0.516834
, sRGB 0.752312 0.227133 0.513149, sRGB 0.756304 0.231555 0.509468
, sRGB 0.760264 0.235976 0.505794, sRGB 0.764193 0.240396 0.502126
, sRGB 0.768090 0.244817 0.498465, sRGB 0.771958 0.249237 0.494813
, sRGB 0.775796 0.253658 0.491171, sRGB 0.779604 0.258078 0.487539
, sRGB 0.783383 0.262500 0.483918, sRGB 0.787133 0.266922 0.480307
, sRGB 0.790855 0.271345 0.476706, sRGB 0.794549 0.275770 0.473117
, sRGB 0.798216 0.280197 0.469538, sRGB 0.801855 0.284626 0.465971
, sRGB 0.805467 0.289057 0.462415, sRGB 0.809052 0.293491 0.458870
, sRGB 0.812612 0.297928 0.455338, sRGB 0.816144 0.302368 0.451816
, sRGB 0.819651 0.306812 0.448306, sRGB 0.823132 0.311261 0.444806
, sRGB 0.826588 0.315714 0.441316, sRGB 0.830018 0.320172 0.437836
, sRGB 0.833422 0.324635 0.434366, sRGB 0.836801 0.329105 0.430905
, sRGB 0.840155 0.333580 0.427455, sRGB 0.843484 0.338062 0.424013
, sRGB 0.846788 0.342551 0.420579, sRGB 0.850066 0.347048 0.417153
, sRGB 0.853319 0.351553 0.413734, sRGB 0.856547 0.356066 0.410322
, sRGB 0.859750 0.360588 0.406917, sRGB 0.862927 0.365119 0.403519
, sRGB 0.866078 0.369660 0.400126, sRGB 0.869203 0.374212 0.396738
, sRGB 0.872303 0.378774 0.393355, sRGB 0.875376 0.383347 0.389976
, sRGB 0.878423 0.387932 0.386600, sRGB 0.881443 0.392529 0.383229
, sRGB 0.884436 0.397139 0.379860, sRGB 0.887402 0.401762 0.376494
, sRGB 0.890340 0.406398 0.373130, sRGB 0.893250 0.411048 0.369768
, sRGB 0.896131 0.415712 0.366407, sRGB 0.898984 0.420392 0.363047
, sRGB 0.901807 0.425087 0.359688, sRGB 0.904601 0.429797 0.356329
, sRGB 0.907365 0.434524 0.352970, sRGB 0.910098 0.439268 0.349610
, sRGB 0.912800 0.444029 0.346251, sRGB 0.915471 0.448807 0.342890
, sRGB 0.918109 0.453603 0.339529, sRGB 0.920714 0.458417 0.336166
, sRGB 0.923287 0.463251 0.332801, sRGB 0.925825 0.468103 0.329435
, sRGB 0.928329 0.472975 0.326067, sRGB 0.930798 0.477867 0.322697
, sRGB 0.933232 0.482780 0.319325, sRGB 0.935630 0.487712 0.315952
, sRGB 0.937990 0.492667 0.312575, sRGB 0.940313 0.497642 0.309197
, sRGB 0.942598 0.502639 0.305816, sRGB 0.944844 0.507658 0.302433
, sRGB 0.947051 0.512699 0.299049, sRGB 0.949217 0.517763 0.295662
, sRGB 0.951344 0.522850 0.292275, sRGB 0.953428 0.527960 0.288883
, sRGB 0.955470 0.533093 0.285490, sRGB 0.957469 0.538250 0.282096
, sRGB 0.959424 0.543431 0.278701, sRGB 0.961336 0.548636 0.275305
, sRGB 0.963203 0.553865 0.271909, sRGB 0.965024 0.559118 0.268513
, sRGB 0.966798 0.564396 0.265118, sRGB 0.968526 0.569700 0.261721
, sRGB 0.970205 0.575028 0.258325, sRGB 0.971835 0.580382 0.254931
, sRGB 0.973416 0.585761 0.251540, sRGB 0.974947 0.591165 0.248151
, sRGB 0.976428 0.596595 0.244767, sRGB 0.977856 0.602051 0.241387
, sRGB 0.979233 0.607532 0.238013, sRGB 0.980556 0.613039 0.234646
, sRGB 0.981826 0.618572 0.231287, sRGB 0.983041 0.624131 0.227937
, sRGB 0.984199 0.629718 0.224595, sRGB 0.985301 0.635330 0.221265
, sRGB 0.986345 0.640969 0.217948, sRGB 0.987332 0.646633 0.214648
, sRGB 0.988260 0.652325 0.211364, sRGB 0.989128 0.658043 0.208100
, sRGB 0.989935 0.663787 0.204859, sRGB 0.990681 0.669558 0.201642
, sRGB 0.991365 0.675355 0.198453, sRGB 0.991985 0.681179 0.195295
, sRGB 0.992541 0.687030 0.192170, sRGB 0.993032 0.692907 0.189084
, sRGB 0.993456 0.698810 0.186041, sRGB 0.993814 0.704741 0.183043
, sRGB 0.994103 0.710698 0.180097, sRGB 0.994324 0.716681 0.177208
, sRGB 0.994474 0.722691 0.174381, sRGB 0.994553 0.728728 0.171622
, sRGB 0.994561 0.734791 0.168938, sRGB 0.994495 0.740880 0.166335
, sRGB 0.994355 0.746995 0.163821, sRGB 0.994141 0.753137 0.161404
, sRGB 0.993851 0.759304 0.159092, sRGB 0.993482 0.765499 0.156891
, sRGB 0.993033 0.771720 0.154808, sRGB 0.992505 0.777967 0.152855
, sRGB 0.991897 0.784239 0.151042, sRGB 0.991209 0.790537 0.149377
, sRGB 0.990439 0.796859 0.147870, sRGB 0.989587 0.803205 0.146529
, sRGB 0.988648 0.809579 0.145357, sRGB 0.987621 0.815978 0.144363
, sRGB 0.986509 0.822401 0.143557, sRGB 0.985314 0.828846 0.142945
, sRGB 0.984031 0.835315 0.142528, sRGB 0.982653 0.841812 0.142303
, sRGB 0.981190 0.848329 0.142279, sRGB 0.979644 0.854866 0.142453
, sRGB 0.977995 0.861432 0.142808, sRGB 0.976265 0.868016 0.143351
, sRGB 0.974443 0.874622 0.144061, sRGB 0.972530 0.881250 0.144923
, sRGB 0.970533 0.887896 0.145919, sRGB 0.968443 0.894564 0.147014
, sRGB 0.966271 0.901249 0.148180, sRGB 0.964021 0.907950 0.149370
, sRGB 0.961681 0.914672 0.150520, sRGB 0.959276 0.921407 0.151566
, sRGB 0.956808 0.928152 0.152409, sRGB 0.954287 0.934908 0.152921
, sRGB 0.951726 0.941671 0.152925, sRGB 0.949151 0.948435 0.152178
, sRGB 0.946602 0.955190 0.150328, sRGB 0.944152 0.961916 0.146861
, sRGB 0.941896 0.968590 0.140956, sRGB 0.940015 0.975158 0.131326
]
viridis :: ColourMap
viridis = colourMap $ zip [1..]
[ sRGB 0.267004 0.004874 0.329415, sRGB 0.268510 0.009605 0.335427
, sRGB 0.269944 0.014625 0.341379, sRGB 0.271305 0.019942 0.347269
, sRGB 0.272594 0.025563 0.353093, sRGB 0.273809 0.031497 0.358853
, sRGB 0.274952 0.037752 0.364543, sRGB 0.276022 0.044167 0.370164
, sRGB 0.277018 0.050344 0.375715, sRGB 0.277941 0.056324 0.381191
, sRGB 0.278791 0.062145 0.386592, sRGB 0.279566 0.067836 0.391917
, sRGB 0.280267 0.073417 0.397163, sRGB 0.280894 0.078907 0.402329
, sRGB 0.281446 0.084320 0.407414, sRGB 0.281924 0.089666 0.412415
, sRGB 0.282327 0.094955 0.417331, sRGB 0.282656 0.100196 0.422160
, sRGB 0.282910 0.105393 0.426902, sRGB 0.283091 0.110553 0.431554
, sRGB 0.283197 0.115680 0.436115, sRGB 0.283229 0.120777 0.440584
, sRGB 0.283187 0.125848 0.444960, sRGB 0.283072 0.130895 0.449241
, sRGB 0.282884 0.135920 0.453427, sRGB 0.282623 0.140926 0.457517
, sRGB 0.282290 0.145912 0.461510, sRGB 0.281887 0.150881 0.465405
, sRGB 0.281412 0.155834 0.469201, sRGB 0.280868 0.160771 0.472899
, sRGB 0.280255 0.165693 0.476498, sRGB 0.279574 0.170599 0.479997
, sRGB 0.278826 0.175490 0.483397, sRGB 0.278012 0.180367 0.486697
, sRGB 0.277134 0.185228 0.489898, sRGB 0.276194 0.190074 0.493001
, sRGB 0.275191 0.194905 0.496005, sRGB 0.274128 0.199721 0.498911
, sRGB 0.273006 0.204520 0.501721, sRGB 0.271828 0.209303 0.504434
, sRGB 0.270595 0.214069 0.507052, sRGB 0.269308 0.218818 0.509577
, sRGB 0.267968 0.223549 0.512008, sRGB 0.266580 0.228262 0.514349
, sRGB 0.265145 0.232956 0.516599, sRGB 0.263663 0.237631 0.518762
, sRGB 0.262138 0.242286 0.520837, sRGB 0.260571 0.246922 0.522828
, sRGB 0.258965 0.251537 0.524736, sRGB 0.257322 0.256130 0.526563
, sRGB 0.255645 0.260703 0.528312, sRGB 0.253935 0.265254 0.529983
, sRGB 0.252194 0.269783 0.531579, sRGB 0.250425 0.274290 0.533103
, sRGB 0.248629 0.278775 0.534556, sRGB 0.246811 0.283237 0.535941
, sRGB 0.244972 0.287675 0.537260, sRGB 0.243113 0.292092 0.538516
, sRGB 0.241237 0.296485 0.539709, sRGB 0.239346 0.300855 0.540844
, sRGB 0.237441 0.305202 0.541921, sRGB 0.235526 0.309527 0.542944
, sRGB 0.233603 0.313828 0.543914, sRGB 0.231674 0.318106 0.544834
, sRGB 0.229739 0.322361 0.545706, sRGB 0.227802 0.326594 0.546532
, sRGB 0.225863 0.330805 0.547314, sRGB 0.223925 0.334994 0.548053
, sRGB 0.221989 0.339161 0.548752, sRGB 0.220057 0.343307 0.549413
, sRGB 0.218130 0.347432 0.550038, sRGB 0.216210 0.351535 0.550627
, sRGB 0.214298 0.355619 0.551184, sRGB 0.212395 0.359683 0.551710
, sRGB 0.210503 0.363727 0.552206, sRGB 0.208623 0.367752 0.552675
, sRGB 0.206756 0.371758 0.553117, sRGB 0.204903 0.375746 0.553533
, sRGB 0.203063 0.379716 0.553925, sRGB 0.201239 0.383670 0.554294
, sRGB 0.199430 0.387607 0.554642, sRGB 0.197636 0.391528 0.554969
, sRGB 0.195860 0.395433 0.555276, sRGB 0.194100 0.399323 0.555565
, sRGB 0.192357 0.403199 0.555836, sRGB 0.190631 0.407061 0.556089
, sRGB 0.188923 0.410910 0.556326, sRGB 0.187231 0.414746 0.556547
, sRGB 0.185556 0.418570 0.556753, sRGB 0.183898 0.422383 0.556944
, sRGB 0.182256 0.426184 0.557120, sRGB 0.180629 0.429975 0.557282
, sRGB 0.179019 0.433756 0.557430, sRGB 0.177423 0.437527 0.557565
, sRGB 0.175841 0.441290 0.557685, sRGB 0.174274 0.445044 0.557792
, sRGB 0.172719 0.448791 0.557885, sRGB 0.171176 0.452530 0.557965
, sRGB 0.169646 0.456262 0.558030, sRGB 0.168126 0.459988 0.558082
, sRGB 0.166617 0.463708 0.558119, sRGB 0.165117 0.467423 0.558141
, sRGB 0.163625 0.471133 0.558148, sRGB 0.162142 0.474838 0.558140
, sRGB 0.160665 0.478540 0.558115, sRGB 0.159194 0.482237 0.558073
, sRGB 0.157729 0.485932 0.558013, sRGB 0.156270 0.489624 0.557936
, sRGB 0.154815 0.493313 0.557840, sRGB 0.153364 0.497000 0.557724
, sRGB 0.151918 0.500685 0.557587, sRGB 0.150476 0.504369 0.557430
, sRGB 0.149039 0.508051 0.557250, sRGB 0.147607 0.511733 0.557049
, sRGB 0.146180 0.515413 0.556823, sRGB 0.144759 0.519093 0.556572
, sRGB 0.143343 0.522773 0.556295, sRGB 0.141935 0.526453 0.555991
, sRGB 0.140536 0.530132 0.555659, sRGB 0.139147 0.533812 0.555298
, sRGB 0.137770 0.537492 0.554906, sRGB 0.136408 0.541173 0.554483
, sRGB 0.135066 0.544853 0.554029, sRGB 0.133743 0.548535 0.553541
, sRGB 0.132444 0.552216 0.553018, sRGB 0.131172 0.555899 0.552459
, sRGB 0.129933 0.559582 0.551864, sRGB 0.128729 0.563265 0.551229
, sRGB 0.127568 0.566949 0.550556, sRGB 0.126453 0.570633 0.549841
, sRGB 0.125394 0.574318 0.549086, sRGB 0.124395 0.578002 0.548287
, sRGB 0.123463 0.581687 0.547445, sRGB 0.122606 0.585371 0.546557
, sRGB 0.121831 0.589055 0.545623, sRGB 0.121148 0.592739 0.544641
, sRGB 0.120565 0.596422 0.543611, sRGB 0.120092 0.600104 0.542530
, sRGB 0.119738 0.603785 0.541400, sRGB 0.119512 0.607464 0.540218
, sRGB 0.119423 0.611141 0.538982, sRGB 0.119483 0.614817 0.537692
, sRGB 0.119699 0.618490 0.536347, sRGB 0.120081 0.622161 0.534946
, sRGB 0.120638 0.625828 0.533488, sRGB 0.121380 0.629492 0.531973
, sRGB 0.122312 0.633153 0.530398, sRGB 0.123444 0.636809 0.528763
, sRGB 0.124780 0.640461 0.527068, sRGB 0.126326 0.644107 0.525311
, sRGB 0.128087 0.647749 0.523491, sRGB 0.130067 0.651384 0.521608
, sRGB 0.132268 0.655014 0.519661, sRGB 0.134692 0.658636 0.517649
, sRGB 0.137339 0.662252 0.515571, sRGB 0.140210 0.665859 0.513427
, sRGB 0.143303 0.669459 0.511215, sRGB 0.146616 0.673050 0.508936
, sRGB 0.150148 0.676631 0.506589, sRGB 0.153894 0.680203 0.504172
, sRGB 0.157851 0.683765 0.501686, sRGB 0.162016 0.687316 0.499129
, sRGB 0.166383 0.690856 0.496502, sRGB 0.170948 0.694384 0.493803
, sRGB 0.175707 0.697900 0.491033, sRGB 0.180653 0.701402 0.488189
, sRGB 0.185783 0.704891 0.485273, sRGB 0.191090 0.708366 0.482284
, sRGB 0.196571 0.711827 0.479221, sRGB 0.202219 0.715272 0.476084
, sRGB 0.208030 0.718701 0.472873, sRGB 0.214000 0.722114 0.469588
, sRGB 0.220124 0.725509 0.466226, sRGB 0.226397 0.728888 0.462789
, sRGB 0.232815 0.732247 0.459277, sRGB 0.239374 0.735588 0.455688
, sRGB 0.246070 0.738910 0.452024, sRGB 0.252899 0.742211 0.448284
, sRGB 0.259857 0.745492 0.444467, sRGB 0.266941 0.748751 0.440573
, sRGB 0.274149 0.751988 0.436601, sRGB 0.281477 0.755203 0.432552
, sRGB 0.288921 0.758394 0.428426, sRGB 0.296479 0.761561 0.424223
, sRGB 0.304148 0.764704 0.419943, sRGB 0.311925 0.767822 0.415586
, sRGB 0.319809 0.770914 0.411152, sRGB 0.327796 0.773980 0.406640
, sRGB 0.335885 0.777018 0.402049, sRGB 0.344074 0.780029 0.397381
, sRGB 0.352360 0.783011 0.392636, sRGB 0.360741 0.785964 0.387814
, sRGB 0.369214 0.788888 0.382914, sRGB 0.377779 0.791781 0.377939
, sRGB 0.386433 0.794644 0.372886, sRGB 0.395174 0.797475 0.367757
, sRGB 0.404001 0.800275 0.362552, sRGB 0.412913 0.803041 0.357269
, sRGB 0.421908 0.805774 0.351910, sRGB 0.430983 0.808473 0.346476
, sRGB 0.440137 0.811138 0.340967, sRGB 0.449368 0.813768 0.335384
, sRGB 0.458674 0.816363 0.329727, sRGB 0.468053 0.818921 0.323998
, sRGB 0.477504 0.821444 0.318195, sRGB 0.487026 0.823929 0.312321
, sRGB 0.496615 0.826376 0.306377, sRGB 0.506271 0.828786 0.300362
, sRGB 0.515992 0.831158 0.294279, sRGB 0.525776 0.833491 0.288127
, sRGB 0.535621 0.835785 0.281908, sRGB 0.545524 0.838039 0.275626
, sRGB 0.555484 0.840254 0.269281, sRGB 0.565498 0.842430 0.262877
, sRGB 0.575563 0.844566 0.256415, sRGB 0.585678 0.846661 0.249897
, sRGB 0.595839 0.848717 0.243329, sRGB 0.606045 0.850733 0.236712
, sRGB 0.616293 0.852709 0.230052, sRGB 0.626579 0.854645 0.223353
, sRGB 0.636902 0.856542 0.216620, sRGB 0.647257 0.858400 0.209861
, sRGB 0.657642 0.860219 0.203082, sRGB 0.668054 0.861999 0.196293
, sRGB 0.678489 0.863742 0.189503, sRGB 0.688944 0.865448 0.182725
, sRGB 0.699415 0.867117 0.175971, sRGB 0.709898 0.868751 0.169257
, sRGB 0.720391 0.870350 0.162603, sRGB 0.730889 0.871916 0.156029
, sRGB 0.741388 0.873449 0.149561, sRGB 0.751884 0.874951 0.143228
, sRGB 0.762373 0.876424 0.137064, sRGB 0.772852 0.877868 0.131109
, sRGB 0.783315 0.879285 0.125405, sRGB 0.793760 0.880678 0.120005
, sRGB 0.804182 0.882046 0.114965, sRGB 0.814576 0.883393 0.110347
, sRGB 0.824940 0.884720 0.106217, sRGB 0.835270 0.886029 0.102646
, sRGB 0.845561 0.887322 0.099702, sRGB 0.855810 0.888601 0.097452
, sRGB 0.866013 0.889868 0.095953, sRGB 0.876168 0.891125 0.095250
, sRGB 0.886271 0.892374 0.095374, sRGB 0.896320 0.893616 0.096335
, sRGB 0.906311 0.894855 0.098125, sRGB 0.916242 0.896091 0.100717
, sRGB 0.926106 0.897330 0.104071, sRGB 0.935904 0.898570 0.108131
, sRGB 0.945636 0.899815 0.112838, sRGB 0.955300 0.901065 0.118128
, sRGB 0.964894 0.902323 0.123941, sRGB 0.974417 0.903590 0.130215
, sRGB 0.983868 0.904867 0.136897, sRGB 0.993248 0.906157 0.143936
]