|
14 | 14 | import matplotlib.pyplot as plt |
15 | 15 | from matplotlib import cm |
16 | 16 | import matplotlib as mpl |
| 17 | +from colorspacious import cspace_converter |
17 | 18 |
|
18 | 19 | mpl.rcParams.update({'font.size': 12}) |
19 | 20 |
|
|
46 | 47 | # Get rgb values for colormap |
47 | 48 | rgb = cm.get_cmap(cmap)(x)[np.newaxis,:,:3] |
48 | 49 |
|
49 | | - # Get colormap in CIE LAB. We want the L here. |
50 | | - lab = color.rgb2lab(rgb) |
| 50 | + # Get colormap in CAM02-UCS colorspace. We want the lightness. |
| 51 | + lab = cspace_converter("sRGB1", "CAM02-UCS")(rgb) |
51 | 52 |
|
52 | 53 | # Plot colormap L values |
53 | 54 | # Do separately for each category so each plot can be pretty |
54 | 55 | # to make scatter markers change color along plot: |
55 | 56 | # http://stackoverflow.com/questions/8202605/matplotlib-scatterplot-colour-as-a-function-of-a-third-variable |
56 | 57 | if cmap_category=='Perceptually Uniform Sequential': |
57 | 58 | dc = 1.15 # spacing between colormaps |
58 | | - ax.scatter(x+j*dc, lab[0,::-1,0], c=x, cmap=cmap, |
| 59 | + ax.scatter(x+j*dc, lab[0,:,0], c=x, cmap=cmap, |
59 | 60 | s=300, linewidths=0.) |
60 | 61 | if i==2: |
61 | 62 | ax.axis([-0.1,4.1,0,100]) |
|
65 | 66 |
|
66 | 67 | elif cmap_category=='Sequential': |
67 | 68 | dc = 0.6 # spacing between colormaps |
68 | | - ax.scatter(x+j*dc, lab[0,::-1,0], c=x, cmap=cmap + '_r', |
| 69 | + # These colormaps all start at high lightness but we want them |
| 70 | + # reversed to look nice in the plot, so reverse the order. |
| 71 | + ax.scatter(x+j*dc, lab[0,::-1,0], c=x[::-1], cmap=cmap, |
69 | 72 | s=300, linewidths=0.) |
70 | 73 | if i==2: |
71 | 74 | ax.axis([-0.1,4.1,0,100]) |
|
0 commit comments