diff --git a/_examples/scatter/main.go b/_examples/scatter/main.go index 71baaa2..d270d57 100644 --- a/_examples/scatter/main.go +++ b/_examples/scatter/main.go @@ -16,7 +16,7 @@ func drawChart(res http.ResponseWriter, req *http.Request) { Style: chart.Style{ Show: true, StrokeWidth: chart.Disabled, - DotWidthProvider: func(_, yr chart.Range, x, y float64) float64 { return 10 * (y / yr.GetDelta()) }, + DotWidth: 5, DotColorProvider: chart.Viridis, }, XValues: chart.Sequence.Random(128, 1024), diff --git a/viridis.go b/viridis.go index 47f3bfb..7db2bfb 100644 --- a/viridis.go +++ b/viridis.go @@ -2,274 +2,268 @@ package chart import "github.com/wcharczuk/go-chart/drawing" -func colorFromValues(r, g, b float64) drawing.Color { - return drawing.Color{R: uint8(r * 256), G: uint8(g * 256), B: uint8(b * 256), A: 255} -} - var viridisColors = [256]drawing.Color{ - colorFromValues(0.26700401, 0.00487433, 0.32941519), - colorFromValues(0.26851048, 0.00960483, 0.33542652), - colorFromValues(0.26994384, 0.01462494, 0.34137895), - colorFromValues(0.27130489, 0.01994186, 0.34726862), - colorFromValues(0.27259384, 0.02556309, 0.35309303), - colorFromValues(0.27380934, 0.03149748, 0.35885256), - colorFromValues(0.27495242, 0.03775181, 0.36454323), - colorFromValues(0.27602238, 0.04416723, 0.37016418), - colorFromValues(0.2770184, 0.05034437, 0.37571452), - colorFromValues(0.27794143, 0.05632444, 0.38119074), - colorFromValues(0.27879067, 0.06214536, 0.38659204), - colorFromValues(0.2795655, 0.06783587, 0.39191723), - colorFromValues(0.28026658, 0.07341724, 0.39716349), - colorFromValues(0.28089358, 0.07890703, 0.40232944), - colorFromValues(0.28144581, 0.0843197, 0.40741404), - colorFromValues(0.28192358, 0.08966622, 0.41241521), - colorFromValues(0.28232739, 0.09495545, 0.41733086), - colorFromValues(0.28265633, 0.10019576, 0.42216032), - colorFromValues(0.28291049, 0.10539345, 0.42690202), - colorFromValues(0.28309095, 0.11055307, 0.43155375), - colorFromValues(0.28319704, 0.11567966, 0.43611482), - colorFromValues(0.28322882, 0.12077701, 0.44058404), - colorFromValues(0.28318684, 0.12584799, 0.44496), - colorFromValues(0.283072, 0.13089477, 0.44924127), - colorFromValues(0.28288389, 0.13592005, 0.45342734), - colorFromValues(0.28262297, 0.14092556, 0.45751726), - colorFromValues(0.28229037, 0.14591233, 0.46150995), - colorFromValues(0.28188676, 0.15088147, 0.46540474), - colorFromValues(0.28141228, 0.15583425, 0.46920128), - colorFromValues(0.28086773, 0.16077132, 0.47289909), - colorFromValues(0.28025468, 0.16569272, 0.47649762), - colorFromValues(0.27957399, 0.17059884, 0.47999675), - colorFromValues(0.27882618, 0.1754902, 0.48339654), - colorFromValues(0.27801236, 0.18036684, 0.48669702), - colorFromValues(0.27713437, 0.18522836, 0.48989831), - colorFromValues(0.27619376, 0.19007447, 0.49300074), - colorFromValues(0.27519116, 0.1949054, 0.49600488), - colorFromValues(0.27412802, 0.19972086, 0.49891131), - colorFromValues(0.27300596, 0.20452049, 0.50172076), - colorFromValues(0.27182812, 0.20930306, 0.50443413), - colorFromValues(0.27059473, 0.21406899, 0.50705243), - colorFromValues(0.26930756, 0.21881782, 0.50957678), - colorFromValues(0.26796846, 0.22354911, 0.5120084), - colorFromValues(0.26657984, 0.2282621, 0.5143487), - colorFromValues(0.2651445, 0.23295593, 0.5165993), - colorFromValues(0.2636632, 0.23763078, 0.51876163), - colorFromValues(0.26213801, 0.24228619, 0.52083736), - colorFromValues(0.26057103, 0.2469217, 0.52282822), - colorFromValues(0.25896451, 0.25153685, 0.52473609), - colorFromValues(0.25732244, 0.2561304, 0.52656332), - colorFromValues(0.25564519, 0.26070284, 0.52831152), - colorFromValues(0.25393498, 0.26525384, 0.52998273), - colorFromValues(0.25219404, 0.26978306, 0.53157905), - colorFromValues(0.25042462, 0.27429024, 0.53310261), - colorFromValues(0.24862899, 0.27877509, 0.53455561), - colorFromValues(0.2468114, 0.28323662, 0.53594093), - colorFromValues(0.24497208, 0.28767547, 0.53726018), - colorFromValues(0.24311324, 0.29209154, 0.53851561), - colorFromValues(0.24123708, 0.29648471, 0.53970946), - colorFromValues(0.23934575, 0.30085494, 0.54084398), - colorFromValues(0.23744138, 0.30520222, 0.5419214), - colorFromValues(0.23552606, 0.30952657, 0.54294396), - colorFromValues(0.23360277, 0.31382773, 0.54391424), - colorFromValues(0.2316735, 0.3181058, 0.54483444), - colorFromValues(0.22973926, 0.32236127, 0.54570633), - colorFromValues(0.22780192, 0.32659432, 0.546532), - colorFromValues(0.2258633, 0.33080515, 0.54731353), - colorFromValues(0.22392515, 0.334994, 0.54805291), - colorFromValues(0.22198915, 0.33916114, 0.54875211), - colorFromValues(0.22005691, 0.34330688, 0.54941304), - colorFromValues(0.21812995, 0.34743154, 0.55003755), - colorFromValues(0.21620971, 0.35153548, 0.55062743), - colorFromValues(0.21429757, 0.35561907, 0.5511844), - colorFromValues(0.21239477, 0.35968273, 0.55171011), - colorFromValues(0.2105031, 0.36372671, 0.55220646), - colorFromValues(0.20862342, 0.36775151, 0.55267486), - colorFromValues(0.20675628, 0.37175775, 0.55311653), - colorFromValues(0.20490257, 0.37574589, 0.55353282), - colorFromValues(0.20306309, 0.37971644, 0.55392505), - colorFromValues(0.20123854, 0.38366989, 0.55429441), - colorFromValues(0.1994295, 0.38760678, 0.55464205), - colorFromValues(0.1976365, 0.39152762, 0.55496905), - colorFromValues(0.19585993, 0.39543297, 0.55527637), - colorFromValues(0.19410009, 0.39932336, 0.55556494), - colorFromValues(0.19235719, 0.40319934, 0.55583559), - colorFromValues(0.19063135, 0.40706148, 0.55608907), - colorFromValues(0.18892259, 0.41091033, 0.55632606), - colorFromValues(0.18723083, 0.41474645, 0.55654717), - colorFromValues(0.18555593, 0.4185704, 0.55675292), - colorFromValues(0.18389763, 0.42238275, 0.55694377), - colorFromValues(0.18225561, 0.42618405, 0.5571201), - colorFromValues(0.18062949, 0.42997486, 0.55728221), - colorFromValues(0.17901879, 0.43375572, 0.55743035), - colorFromValues(0.17742298, 0.4375272, 0.55756466), - colorFromValues(0.17584148, 0.44128981, 0.55768526), - colorFromValues(0.17427363, 0.4450441, 0.55779216), - colorFromValues(0.17271876, 0.4487906, 0.55788532), - colorFromValues(0.17117615, 0.4525298, 0.55796464), - colorFromValues(0.16964573, 0.45626209, 0.55803034), - colorFromValues(0.16812641, 0.45998802, 0.55808199), - colorFromValues(0.1666171, 0.46370813, 0.55811913), - colorFromValues(0.16511703, 0.4674229, 0.55814141), - colorFromValues(0.16362543, 0.47113278, 0.55814842), - colorFromValues(0.16214155, 0.47483821, 0.55813967), - colorFromValues(0.16066467, 0.47853961, 0.55811466), - colorFromValues(0.15919413, 0.4822374, 0.5580728), - colorFromValues(0.15772933, 0.48593197, 0.55801347), - colorFromValues(0.15626973, 0.4896237, 0.557936), - colorFromValues(0.15481488, 0.49331293, 0.55783967), - colorFromValues(0.15336445, 0.49700003, 0.55772371), - colorFromValues(0.1519182, 0.50068529, 0.55758733), - colorFromValues(0.15047605, 0.50436904, 0.55742968), - colorFromValues(0.14903918, 0.50805136, 0.5572505), - colorFromValues(0.14760731, 0.51173263, 0.55704861), - colorFromValues(0.14618026, 0.51541316, 0.55682271), - colorFromValues(0.14475863, 0.51909319, 0.55657181), - colorFromValues(0.14334327, 0.52277292, 0.55629491), - colorFromValues(0.14193527, 0.52645254, 0.55599097), - colorFromValues(0.14053599, 0.53013219, 0.55565893), - colorFromValues(0.13914708, 0.53381201, 0.55529773), - colorFromValues(0.13777048, 0.53749213, 0.55490625), - colorFromValues(0.1364085, 0.54117264, 0.55448339), - colorFromValues(0.13506561, 0.54485335, 0.55402906), - colorFromValues(0.13374299, 0.54853458, 0.55354108), - colorFromValues(0.13244401, 0.55221637, 0.55301828), - colorFromValues(0.13117249, 0.55589872, 0.55245948), - colorFromValues(0.1299327, 0.55958162, 0.55186354), - colorFromValues(0.12872938, 0.56326503, 0.55122927), - colorFromValues(0.12756771, 0.56694891, 0.55055551), - colorFromValues(0.12645338, 0.57063316, 0.5498411), - colorFromValues(0.12539383, 0.57431754, 0.54908564), - colorFromValues(0.12439474, 0.57800205, 0.5482874), - colorFromValues(0.12346281, 0.58168661, 0.54744498), - colorFromValues(0.12260562, 0.58537105, 0.54655722), - colorFromValues(0.12183122, 0.58905521, 0.54562298), - colorFromValues(0.12114807, 0.59273889, 0.54464114), - colorFromValues(0.12056501, 0.59642187, 0.54361058), - colorFromValues(0.12009154, 0.60010387, 0.54253043), - colorFromValues(0.11973756, 0.60378459, 0.54139999), - colorFromValues(0.11951163, 0.60746388, 0.54021751), - colorFromValues(0.11942341, 0.61114146, 0.53898192), - colorFromValues(0.11948255, 0.61481702, 0.53769219), - colorFromValues(0.11969858, 0.61849025, 0.53634733), - colorFromValues(0.12008079, 0.62216081, 0.53494633), - colorFromValues(0.12063824, 0.62582833, 0.53348834), - colorFromValues(0.12137972, 0.62949242, 0.53197275), - colorFromValues(0.12231244, 0.63315277, 0.53039808), - colorFromValues(0.12344358, 0.63680899, 0.52876343), - colorFromValues(0.12477953, 0.64046069, 0.52706792), - colorFromValues(0.12632581, 0.64410744, 0.52531069), - colorFromValues(0.12808703, 0.64774881, 0.52349092), - colorFromValues(0.13006688, 0.65138436, 0.52160791), - colorFromValues(0.13226797, 0.65501363, 0.51966086), - colorFromValues(0.13469183, 0.65863619, 0.5176488), - colorFromValues(0.13733921, 0.66225157, 0.51557101), - colorFromValues(0.14020991, 0.66585927, 0.5134268), - colorFromValues(0.14330291, 0.66945881, 0.51121549), - colorFromValues(0.1466164, 0.67304968, 0.50893644), - colorFromValues(0.15014782, 0.67663139, 0.5065889), - colorFromValues(0.15389405, 0.68020343, 0.50417217), - colorFromValues(0.15785146, 0.68376525, 0.50168574), - colorFromValues(0.16201598, 0.68731632, 0.49912906), - colorFromValues(0.1663832, 0.69085611, 0.49650163), - colorFromValues(0.1709484, 0.69438405, 0.49380294), - colorFromValues(0.17570671, 0.6978996, 0.49103252), - colorFromValues(0.18065314, 0.70140222, 0.48818938), - colorFromValues(0.18578266, 0.70489133, 0.48527326), - colorFromValues(0.19109018, 0.70836635, 0.48228395), - colorFromValues(0.19657063, 0.71182668, 0.47922108), - colorFromValues(0.20221902, 0.71527175, 0.47608431), - colorFromValues(0.20803045, 0.71870095, 0.4728733), - colorFromValues(0.21400015, 0.72211371, 0.46958774), - colorFromValues(0.22012381, 0.72550945, 0.46622638), - colorFromValues(0.2263969, 0.72888753, 0.46278934), - colorFromValues(0.23281498, 0.73224735, 0.45927675), - colorFromValues(0.2393739, 0.73558828, 0.45568838), - colorFromValues(0.24606968, 0.73890972, 0.45202405), - colorFromValues(0.25289851, 0.74221104, 0.44828355), - colorFromValues(0.25985676, 0.74549162, 0.44446673), - colorFromValues(0.26694127, 0.74875084, 0.44057284), - colorFromValues(0.27414922, 0.75198807, 0.4366009), - colorFromValues(0.28147681, 0.75520266, 0.43255207), - colorFromValues(0.28892102, 0.75839399, 0.42842626), - colorFromValues(0.29647899, 0.76156142, 0.42422341), - colorFromValues(0.30414796, 0.76470433, 0.41994346), - colorFromValues(0.31192534, 0.76782207, 0.41558638), - colorFromValues(0.3198086, 0.77091403, 0.41115215), - colorFromValues(0.3277958, 0.77397953, 0.40664011), - colorFromValues(0.33588539, 0.7770179, 0.40204917), - colorFromValues(0.34407411, 0.78002855, 0.39738103), - colorFromValues(0.35235985, 0.78301086, 0.39263579), - colorFromValues(0.36074053, 0.78596419, 0.38781353), - colorFromValues(0.3692142, 0.78888793, 0.38291438), - colorFromValues(0.37777892, 0.79178146, 0.3779385), - colorFromValues(0.38643282, 0.79464415, 0.37288606), - colorFromValues(0.39517408, 0.79747541, 0.36775726), - colorFromValues(0.40400101, 0.80027461, 0.36255223), - colorFromValues(0.4129135, 0.80304099, 0.35726893), - colorFromValues(0.42190813, 0.80577412, 0.35191009), - colorFromValues(0.43098317, 0.80847343, 0.34647607), - colorFromValues(0.44013691, 0.81113836, 0.3409673), - colorFromValues(0.44936763, 0.81376835, 0.33538426), - colorFromValues(0.45867362, 0.81636288, 0.32972749), - colorFromValues(0.46805314, 0.81892143, 0.32399761), - colorFromValues(0.47750446, 0.82144351, 0.31819529), - colorFromValues(0.4870258, 0.82392862, 0.31232133), - colorFromValues(0.49661536, 0.82637633, 0.30637661), - colorFromValues(0.5062713, 0.82878621, 0.30036211), - colorFromValues(0.51599182, 0.83115784, 0.29427888), - colorFromValues(0.52577622, 0.83349064, 0.2881265), - colorFromValues(0.5356211, 0.83578452, 0.28190832), - colorFromValues(0.5455244, 0.83803918, 0.27562602), - colorFromValues(0.55548397, 0.84025437, 0.26928147), - colorFromValues(0.5654976, 0.8424299, 0.26287683), - colorFromValues(0.57556297, 0.84456561, 0.25641457), - colorFromValues(0.58567772, 0.84666139, 0.24989748), - colorFromValues(0.59583934, 0.84871722, 0.24332878), - colorFromValues(0.60604528, 0.8507331, 0.23671214), - colorFromValues(0.61629283, 0.85270912, 0.23005179), - colorFromValues(0.62657923, 0.85464543, 0.22335258), - colorFromValues(0.63690157, 0.85654226, 0.21662012), - colorFromValues(0.64725685, 0.85839991, 0.20986086), - colorFromValues(0.65764197, 0.86021878, 0.20308229), - colorFromValues(0.66805369, 0.86199932, 0.19629307), - colorFromValues(0.67848868, 0.86374211, 0.18950326), - colorFromValues(0.68894351, 0.86544779, 0.18272455), - colorFromValues(0.69941463, 0.86711711, 0.17597055), - colorFromValues(0.70989842, 0.86875092, 0.16925712), - colorFromValues(0.72039115, 0.87035015, 0.16260273), - colorFromValues(0.73088902, 0.87191584, 0.15602894), - colorFromValues(0.74138803, 0.87344918, 0.14956101), - colorFromValues(0.75188414, 0.87495143, 0.14322828), - colorFromValues(0.76237342, 0.87642392, 0.13706449), - colorFromValues(0.77285183, 0.87786808, 0.13110864), - colorFromValues(0.78331535, 0.87928545, 0.12540538), - colorFromValues(0.79375994, 0.88067763, 0.12000532), - colorFromValues(0.80418159, 0.88204632, 0.11496505), - colorFromValues(0.81457634, 0.88339329, 0.11034678), - colorFromValues(0.82494028, 0.88472036, 0.10621724), - colorFromValues(0.83526959, 0.88602943, 0.1026459), - colorFromValues(0.84556056, 0.88732243, 0.09970219), - colorFromValues(0.8558096, 0.88860134, 0.09745186), - colorFromValues(0.86601325, 0.88986815, 0.09595277), - colorFromValues(0.87616824, 0.89112487, 0.09525046), - colorFromValues(0.88627146, 0.89237353, 0.09537439), - colorFromValues(0.89632002, 0.89361614, 0.09633538), - colorFromValues(0.90631121, 0.89485467, 0.09812496), - colorFromValues(0.91624212, 0.89609127, 0.1007168), - colorFromValues(0.92610579, 0.89732977, 0.10407067), - colorFromValues(0.93590444, 0.8985704, 0.10813094), - colorFromValues(0.94563626, 0.899815, 0.11283773), - colorFromValues(0.95529972, 0.90106534, 0.11812832), - colorFromValues(0.96489353, 0.90232311, 0.12394051), - colorFromValues(0.97441665, 0.90358991, 0.13021494), - colorFromValues(0.98386829, 0.90486726, 0.13689671), - colorFromValues(0.99324789, 0.90615657, 0.1439362), + drawing.Color{R: 0x44, G: 0x1, B: 0x54, A: 0xff}, + drawing.Color{R: 0x44, G: 0x2, B: 0x55, A: 0xff}, + drawing.Color{R: 0x45, G: 0x3, B: 0x57, A: 0xff}, + drawing.Color{R: 0x45, G: 0x5, B: 0x58, A: 0xff}, + drawing.Color{R: 0x45, G: 0x6, B: 0x5a, A: 0xff}, + drawing.Color{R: 0x46, G: 0x8, B: 0x5b, A: 0xff}, + drawing.Color{R: 0x46, G: 0x9, B: 0x5d, A: 0xff}, + drawing.Color{R: 0x46, G: 0xb, B: 0x5e, A: 0xff}, + drawing.Color{R: 0x46, G: 0xc, B: 0x60, A: 0xff}, + drawing.Color{R: 0x47, G: 0xe, B: 0x61, A: 0xff}, + drawing.Color{R: 0x47, G: 0xf, B: 0x62, A: 0xff}, + drawing.Color{R: 0x47, G: 0x11, B: 0x64, A: 0xff}, + drawing.Color{R: 0x47, G: 0x12, B: 0x65, A: 0xff}, + drawing.Color{R: 0x47, G: 0x14, B: 0x66, A: 0xff}, + drawing.Color{R: 0x48, G: 0x15, B: 0x68, A: 0xff}, + drawing.Color{R: 0x48, G: 0x16, B: 0x69, A: 0xff}, + drawing.Color{R: 0x48, G: 0x18, B: 0x6a, A: 0xff}, + drawing.Color{R: 0x48, G: 0x19, B: 0x6c, A: 0xff}, + drawing.Color{R: 0x48, G: 0x1a, B: 0x6d, A: 0xff}, + drawing.Color{R: 0x48, G: 0x1c, B: 0x6e, A: 0xff}, + drawing.Color{R: 0x48, G: 0x1d, B: 0x6f, A: 0xff}, + drawing.Color{R: 0x48, G: 0x1e, B: 0x70, A: 0xff}, + drawing.Color{R: 0x48, G: 0x20, B: 0x71, A: 0xff}, + drawing.Color{R: 0x48, G: 0x21, B: 0x73, A: 0xff}, + drawing.Color{R: 0x48, G: 0x22, B: 0x74, A: 0xff}, + drawing.Color{R: 0x48, G: 0x24, B: 0x75, A: 0xff}, + drawing.Color{R: 0x48, G: 0x25, B: 0x76, A: 0xff}, + drawing.Color{R: 0x48, G: 0x26, B: 0x77, A: 0xff}, + drawing.Color{R: 0x48, G: 0x27, B: 0x78, A: 0xff}, + drawing.Color{R: 0x47, G: 0x29, B: 0x79, A: 0xff}, + drawing.Color{R: 0x47, G: 0x2a, B: 0x79, A: 0xff}, + drawing.Color{R: 0x47, G: 0x2b, B: 0x7a, A: 0xff}, + drawing.Color{R: 0x47, G: 0x2c, B: 0x7b, A: 0xff}, + drawing.Color{R: 0x47, G: 0x2e, B: 0x7c, A: 0xff}, + drawing.Color{R: 0x46, G: 0x2f, B: 0x7d, A: 0xff}, + drawing.Color{R: 0x46, G: 0x30, B: 0x7e, A: 0xff}, + drawing.Color{R: 0x46, G: 0x31, B: 0x7e, A: 0xff}, + drawing.Color{R: 0x46, G: 0x33, B: 0x7f, A: 0xff}, + drawing.Color{R: 0x45, G: 0x34, B: 0x80, A: 0xff}, + drawing.Color{R: 0x45, G: 0x35, B: 0x81, A: 0xff}, + drawing.Color{R: 0x45, G: 0x36, B: 0x81, A: 0xff}, + drawing.Color{R: 0x44, G: 0x38, B: 0x82, A: 0xff}, + drawing.Color{R: 0x44, G: 0x39, B: 0x83, A: 0xff}, + drawing.Color{R: 0x44, G: 0x3a, B: 0x83, A: 0xff}, + drawing.Color{R: 0x43, G: 0x3b, B: 0x84, A: 0xff}, + drawing.Color{R: 0x43, G: 0x3c, B: 0x84, A: 0xff}, + drawing.Color{R: 0x43, G: 0x3e, B: 0x85, A: 0xff}, + drawing.Color{R: 0x42, G: 0x3f, B: 0x85, A: 0xff}, + drawing.Color{R: 0x42, G: 0x40, B: 0x86, A: 0xff}, + drawing.Color{R: 0x41, G: 0x41, B: 0x86, A: 0xff}, + drawing.Color{R: 0x41, G: 0x42, B: 0x87, A: 0xff}, + drawing.Color{R: 0x41, G: 0x43, B: 0x87, A: 0xff}, + drawing.Color{R: 0x40, G: 0x45, B: 0x88, A: 0xff}, + drawing.Color{R: 0x40, G: 0x46, B: 0x88, A: 0xff}, + drawing.Color{R: 0x3f, G: 0x47, B: 0x88, A: 0xff}, + drawing.Color{R: 0x3f, G: 0x48, B: 0x89, A: 0xff}, + drawing.Color{R: 0x3e, G: 0x49, B: 0x89, A: 0xff}, + drawing.Color{R: 0x3e, G: 0x4a, B: 0x89, A: 0xff}, + drawing.Color{R: 0x3d, G: 0x4b, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x3d, G: 0x4d, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x3c, G: 0x4e, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x3c, G: 0x4f, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x3b, G: 0x50, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x3b, G: 0x51, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x3a, G: 0x52, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x3a, G: 0x53, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x39, G: 0x54, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x39, G: 0x55, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x38, G: 0x56, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x38, G: 0x57, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x37, G: 0x58, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x37, G: 0x59, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x36, G: 0x5b, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x36, G: 0x5c, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x35, G: 0x5d, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x35, G: 0x5e, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x34, G: 0x5f, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x34, G: 0x60, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x33, G: 0x61, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x33, G: 0x62, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x33, G: 0x63, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x32, G: 0x64, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x32, G: 0x65, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x31, G: 0x66, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x31, G: 0x67, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x30, G: 0x68, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x30, G: 0x69, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2f, G: 0x6a, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2f, G: 0x6b, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2f, G: 0x6c, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2e, G: 0x6d, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2e, G: 0x6e, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2d, G: 0x6f, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2d, G: 0x70, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2d, G: 0x70, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2c, G: 0x71, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2c, G: 0x72, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2b, G: 0x73, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2b, G: 0x74, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2b, G: 0x75, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2a, G: 0x76, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x2a, G: 0x77, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x29, G: 0x78, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x29, G: 0x79, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x29, G: 0x7a, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x28, G: 0x7b, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x28, G: 0x7c, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x28, G: 0x7d, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x27, G: 0x7e, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x27, G: 0x7f, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x26, G: 0x80, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x26, G: 0x81, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x26, G: 0x82, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x25, G: 0x83, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x25, G: 0x83, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x25, G: 0x84, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x24, G: 0x85, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x24, G: 0x86, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x23, G: 0x87, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x23, G: 0x88, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x23, G: 0x89, B: 0x8e, A: 0xff}, + drawing.Color{R: 0x22, G: 0x8a, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x22, G: 0x8b, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x22, G: 0x8c, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x21, G: 0x8d, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x21, G: 0x8e, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x21, G: 0x8f, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x20, G: 0x90, B: 0x8d, A: 0xff}, + drawing.Color{R: 0x20, G: 0x91, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x20, G: 0x92, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x20, G: 0x93, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x1f, G: 0x93, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x1f, G: 0x94, B: 0x8c, A: 0xff}, + drawing.Color{R: 0x1f, G: 0x95, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x1f, G: 0x96, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x1f, G: 0x97, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x98, B: 0x8b, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x99, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x9a, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x9b, B: 0x8a, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x9c, B: 0x89, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x9d, B: 0x89, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x9e, B: 0x89, A: 0xff}, + drawing.Color{R: 0x1e, G: 0x9f, B: 0x88, A: 0xff}, + drawing.Color{R: 0x1e, G: 0xa0, B: 0x88, A: 0xff}, + drawing.Color{R: 0x1f, G: 0xa1, B: 0x88, A: 0xff}, + drawing.Color{R: 0x1f, G: 0xa2, B: 0x87, A: 0xff}, + drawing.Color{R: 0x1f, G: 0xa3, B: 0x87, A: 0xff}, + drawing.Color{R: 0x1f, G: 0xa3, B: 0x86, A: 0xff}, + drawing.Color{R: 0x20, G: 0xa4, B: 0x86, A: 0xff}, + drawing.Color{R: 0x20, G: 0xa5, B: 0x86, A: 0xff}, + drawing.Color{R: 0x21, G: 0xa6, B: 0x85, A: 0xff}, + drawing.Color{R: 0x21, G: 0xa7, B: 0x85, A: 0xff}, + drawing.Color{R: 0x22, G: 0xa8, B: 0x84, A: 0xff}, + drawing.Color{R: 0x23, G: 0xa9, B: 0x83, A: 0xff}, + drawing.Color{R: 0x23, G: 0xaa, B: 0x83, A: 0xff}, + drawing.Color{R: 0x24, G: 0xab, B: 0x82, A: 0xff}, + drawing.Color{R: 0x25, G: 0xac, B: 0x82, A: 0xff}, + drawing.Color{R: 0x26, G: 0xad, B: 0x81, A: 0xff}, + drawing.Color{R: 0x27, G: 0xae, B: 0x81, A: 0xff}, + drawing.Color{R: 0x28, G: 0xaf, B: 0x80, A: 0xff}, + drawing.Color{R: 0x29, G: 0xaf, B: 0x7f, A: 0xff}, + drawing.Color{R: 0x2a, G: 0xb0, B: 0x7f, A: 0xff}, + drawing.Color{R: 0x2b, G: 0xb1, B: 0x7e, A: 0xff}, + drawing.Color{R: 0x2c, G: 0xb2, B: 0x7d, A: 0xff}, + drawing.Color{R: 0x2e, G: 0xb3, B: 0x7c, A: 0xff}, + drawing.Color{R: 0x2f, G: 0xb4, B: 0x7c, A: 0xff}, + drawing.Color{R: 0x30, G: 0xb5, B: 0x7b, A: 0xff}, + drawing.Color{R: 0x32, G: 0xb6, B: 0x7a, A: 0xff}, + drawing.Color{R: 0x33, G: 0xb7, B: 0x79, A: 0xff}, + drawing.Color{R: 0x35, G: 0xb7, B: 0x79, A: 0xff}, + drawing.Color{R: 0x36, G: 0xb8, B: 0x78, A: 0xff}, + drawing.Color{R: 0x38, G: 0xb9, B: 0x77, A: 0xff}, + drawing.Color{R: 0x39, G: 0xba, B: 0x76, A: 0xff}, + drawing.Color{R: 0x3b, G: 0xbb, B: 0x75, A: 0xff}, + drawing.Color{R: 0x3d, G: 0xbc, B: 0x74, A: 0xff}, + drawing.Color{R: 0x3e, G: 0xbd, B: 0x73, A: 0xff}, + drawing.Color{R: 0x40, G: 0xbe, B: 0x72, A: 0xff}, + drawing.Color{R: 0x42, G: 0xbe, B: 0x71, A: 0xff}, + drawing.Color{R: 0x44, G: 0xbf, B: 0x70, A: 0xff}, + drawing.Color{R: 0x46, G: 0xc0, B: 0x6f, A: 0xff}, + drawing.Color{R: 0x48, G: 0xc1, B: 0x6e, A: 0xff}, + drawing.Color{R: 0x49, G: 0xc2, B: 0x6d, A: 0xff}, + drawing.Color{R: 0x4b, G: 0xc2, B: 0x6c, A: 0xff}, + drawing.Color{R: 0x4d, G: 0xc3, B: 0x6b, A: 0xff}, + drawing.Color{R: 0x4f, G: 0xc4, B: 0x6a, A: 0xff}, + drawing.Color{R: 0x51, G: 0xc5, B: 0x69, A: 0xff}, + drawing.Color{R: 0x53, G: 0xc6, B: 0x68, A: 0xff}, + drawing.Color{R: 0x55, G: 0xc6, B: 0x66, A: 0xff}, + drawing.Color{R: 0x58, G: 0xc7, B: 0x65, A: 0xff}, + drawing.Color{R: 0x5a, G: 0xc8, B: 0x64, A: 0xff}, + drawing.Color{R: 0x5c, G: 0xc9, B: 0x63, A: 0xff}, + drawing.Color{R: 0x5e, G: 0xc9, B: 0x62, A: 0xff}, + drawing.Color{R: 0x60, G: 0xca, B: 0x60, A: 0xff}, + drawing.Color{R: 0x62, G: 0xcb, B: 0x5f, A: 0xff}, + drawing.Color{R: 0x65, G: 0xcc, B: 0x5e, A: 0xff}, + drawing.Color{R: 0x67, G: 0xcc, B: 0x5c, A: 0xff}, + drawing.Color{R: 0x69, G: 0xcd, B: 0x5b, A: 0xff}, + drawing.Color{R: 0x6c, G: 0xce, B: 0x5a, A: 0xff}, + drawing.Color{R: 0x6e, G: 0xce, B: 0x58, A: 0xff}, + drawing.Color{R: 0x70, G: 0xcf, B: 0x57, A: 0xff}, + drawing.Color{R: 0x73, G: 0xd0, B: 0x55, A: 0xff}, + drawing.Color{R: 0x75, G: 0xd0, B: 0x54, A: 0xff}, + drawing.Color{R: 0x77, G: 0xd1, B: 0x52, A: 0xff}, + drawing.Color{R: 0x7a, G: 0xd2, B: 0x51, A: 0xff}, + drawing.Color{R: 0x7c, G: 0xd2, B: 0x4f, A: 0xff}, + drawing.Color{R: 0x7f, G: 0xd3, B: 0x4e, A: 0xff}, + drawing.Color{R: 0x81, G: 0xd4, B: 0x4c, A: 0xff}, + drawing.Color{R: 0x84, G: 0xd4, B: 0x4b, A: 0xff}, + drawing.Color{R: 0x86, G: 0xd5, B: 0x49, A: 0xff}, + drawing.Color{R: 0x89, G: 0xd5, B: 0x48, A: 0xff}, + drawing.Color{R: 0x8b, G: 0xd6, B: 0x46, A: 0xff}, + drawing.Color{R: 0x8e, G: 0xd7, B: 0x44, A: 0xff}, + drawing.Color{R: 0x90, G: 0xd7, B: 0x43, A: 0xff}, + drawing.Color{R: 0x93, G: 0xd8, B: 0x41, A: 0xff}, + drawing.Color{R: 0x95, G: 0xd8, B: 0x3f, A: 0xff}, + drawing.Color{R: 0x98, G: 0xd9, B: 0x3e, A: 0xff}, + drawing.Color{R: 0x9b, G: 0xd9, B: 0x3c, A: 0xff}, + drawing.Color{R: 0x9d, G: 0xda, B: 0x3a, A: 0xff}, + drawing.Color{R: 0xa0, G: 0xda, B: 0x39, A: 0xff}, + drawing.Color{R: 0xa3, G: 0xdb, B: 0x37, A: 0xff}, + drawing.Color{R: 0xa5, G: 0xdb, B: 0x35, A: 0xff}, + drawing.Color{R: 0xa8, G: 0xdc, B: 0x33, A: 0xff}, + drawing.Color{R: 0xab, G: 0xdc, B: 0x32, A: 0xff}, + drawing.Color{R: 0xad, G: 0xdd, B: 0x30, A: 0xff}, + drawing.Color{R: 0xb0, G: 0xdd, B: 0x2e, A: 0xff}, + drawing.Color{R: 0xb3, G: 0xdd, B: 0x2d, A: 0xff}, + drawing.Color{R: 0xb5, G: 0xde, B: 0x2b, A: 0xff}, + drawing.Color{R: 0xb8, G: 0xde, B: 0x29, A: 0xff}, + drawing.Color{R: 0xbb, G: 0xdf, B: 0x27, A: 0xff}, + drawing.Color{R: 0xbd, G: 0xdf, B: 0x26, A: 0xff}, + drawing.Color{R: 0xc0, G: 0xdf, B: 0x24, A: 0xff}, + drawing.Color{R: 0xc3, G: 0xe0, B: 0x23, A: 0xff}, + drawing.Color{R: 0xc5, G: 0xe0, B: 0x21, A: 0xff}, + drawing.Color{R: 0xc8, G: 0xe1, B: 0x20, A: 0xff}, + drawing.Color{R: 0xcb, G: 0xe1, B: 0x1e, A: 0xff}, + drawing.Color{R: 0xcd, G: 0xe1, B: 0x1d, A: 0xff}, + drawing.Color{R: 0xd0, G: 0xe2, B: 0x1c, A: 0xff}, + drawing.Color{R: 0xd3, G: 0xe2, B: 0x1b, A: 0xff}, + drawing.Color{R: 0xd5, G: 0xe2, B: 0x1a, A: 0xff}, + drawing.Color{R: 0xd8, G: 0xe3, B: 0x19, A: 0xff}, + drawing.Color{R: 0xdb, G: 0xe3, B: 0x18, A: 0xff}, + drawing.Color{R: 0xdd, G: 0xe3, B: 0x18, A: 0xff}, + drawing.Color{R: 0xe0, G: 0xe4, B: 0x18, A: 0xff}, + drawing.Color{R: 0xe2, G: 0xe4, B: 0x18, A: 0xff}, + drawing.Color{R: 0xe5, G: 0xe4, B: 0x18, A: 0xff}, + drawing.Color{R: 0xe8, G: 0xe5, B: 0x19, A: 0xff}, + drawing.Color{R: 0xea, G: 0xe5, B: 0x19, A: 0xff}, + drawing.Color{R: 0xed, G: 0xe5, B: 0x1a, A: 0xff}, + drawing.Color{R: 0xef, G: 0xe6, B: 0x1b, A: 0xff}, + drawing.Color{R: 0xf2, G: 0xe6, B: 0x1c, A: 0xff}, + drawing.Color{R: 0xf4, G: 0xe6, B: 0x1e, A: 0xff}, + drawing.Color{R: 0xf7, G: 0xe6, B: 0x1f, A: 0xff}, + drawing.Color{R: 0xf9, G: 0xe7, B: 0x21, A: 0xff}, + drawing.Color{R: 0xfb, G: 0xe7, B: 0x23, A: 0xff}, + drawing.Color{R: 0xfe, G: 0xe7, B: 0x24, A: 0xff}, } // Viridis creates a color map provider. func Viridis(xr, yr Range, x, y float64) drawing.Color { - delta := yr.GetDelta() - normalized := y / delta - adjusted := normalized + yr.GetMin() - index := uint8(adjusted * 256) + normalized := (y - yr.GetMin()) / yr.GetDelta() + index := uint8(normalized * 255) return viridisColors[index] }