Schöne Colormaps für die Ozeanographie: cmocean

Dieses Paket enthält Colormaps für gängige ozeanographische Variablen. Die meisten Colormaps basierten auf matplotlib Colormaps, wurden aber nun mit dem viscm-Tool angepasst, um wahrnehmungsuniform zu sein.

Hinweis

Dies ist eine neue Version von cmocean mit vier neuen Colormaps!

Hinweis

Wir haben eine Veröffentlichung mit Richtlinien zur Auswahl von Colormaps für Ihre Anwendung und einer Beschreibung der cmocean Colormaps

Thyng, K. M., Greene, C. A., Hetland, R. D., Zimmerle, H. M., & DiMarco, S. F. (2016). True colors of oceanography. Oceanography, 29(3), 10.

Link: http://tos.org/oceanography/assets/docs/29-3_thyng.pdf

Hier ist unsere Galerie

import cmocean
cmocean.plots.plot_gallery()

(Quellcode, png, hires.png, pdf)

_images/index-1.png

Diese Colormaps wurden gewählt, um wahrnehmungsuniform zu sein und die Daten, die sie darstellen, in Bezug auf sequenziell, divergent oder zyklisch (Phasen-Colormap) widerzuspiegeln und intuitiv zu sein. Zum Beispiel ist die algae Colormap ein Grüntöne, die Chlorophyll darstellen könnten.

Hier ist die Helligkeit der Colormaps

import cmocean
cmocean.plots.plot_lightness()

(Quellcode, png, hires.png, pdf)

_images/index-2.png

Es ist wahrscheinlich besser, in Farbenraum cam02ucs zu denken, in dem die euklidische Entfernung Veränderungen in der menschlichen Wahrnehmung entspricht. Plots dieser Colormaps in diesem Farbenraum und mit einigen anderen wichtigen Eigenschaften werden mit dem viscm-Tool angezeigt.

Hier sind einige Eigenschaften der haline Colormap. Wir können sehen, dass die Colormap gut in Graustufen druckbar ist, über die Colormap hinweg konsistente wahrnehmungsbezogene Deltas aufweist und für Menschen mit Farbenblindheit gut sichtbar ist. Sie hat eine glatte Darstellung in ihrem 3D-Farbraum, und Details in den Bildern sind klar.

import cmocean
cmocean.plots.wrap_viscm(cmocean.cm.haline, saveplot=False)

(Quellcode, png, hires.png, pdf)

_images/index-3.png

Alle Auswertungen der Colormaps mit dem viscm-Tool sind auf der Seite cmocean Colormaps im viscm-Tool zu sehen.

Installation

Zur Installation: pip install cmocean

Zur Installation mit Anaconda: conda install -c conda-forge cmocean

Wenn Sie das plots-Submodul verwenden möchten, können Sie stattdessen installieren mit

pip install "cmocean[plots]"

Dies installiert auch viscm und colorspacious.

Funktionen

Die Colormaps sind alle in cmocean.cm verfügbar. Sie können wie folgt abgerufen und einfach geplottet werden

import cmocean
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
cmocean.plots.test(cmocean.cm.thermal, ax=ax)
ax = fig.add_subplot(1, 2, 2)
cmocean.plots.quick_plot(cmocean.cm.algae, ax=ax)

(Quellcode, png, hires.png, pdf)

_images/index-4.png

Alle verfügbaren Colormap-Namen sind mit cmocean.cm.cmapnames abrufbar

In [1]: import cmocean

In [2]: cmocean.cm.cmapnames
Out[2]: 
['thermal',
 'haline',
 'solar',
 'ice',
 'gray',
 'oxy',
 'deep',
 'dense',
 'algae',
 'matter',
 'turbid',
 'speed',
 'amp',
 'tempo',
 'rain',
 'phase',
 'topo',
 'balance',
 'delta',
 'curl',
 'diff',
 'tarn']

Die Colormap-Instanzen können abgerufen werden mit

In [3]: import cmocean

In [4]: cmaps = cmocean.cm.cmap_d;

Drucken Sie alle verfügbaren Colormaps in Textdateien mit 256 RGB-Einträgen mit

cmaps = cmocean.cm.cmap_d

cmocean.tools.print_colormaps(cmaps)

Gibt ein Wörterbuch aus, um eine Colormap mit

In [5]: import cmocean

In [6]: cmdict = cmocean.tools.get_dict(cmocean.cm.matter, N=9)

In [7]: print(cmdict)
{'red': [(0.0, 0.99429361496112023, 0.99429361496112023), (0.125, 0.97669801635856757, 0.97669801635856757), (0.25, 0.94873479766923496, 0.94873479766923496), (0.375, 0.90045567698531204, 0.90045567698531204), (0.5, 0.80852468744463613, 0.80852468744463613), (0.625, 0.67108411902889908, 0.67108411902889908), (0.75, 0.51122751026810531, 0.51122751026810531), (0.875, 0.34246319725680402, 0.34246319725680402), (1.0, 0.18517171283533682, 0.18517171283533682)], 'green': [(0.0, 0.93032779532320797, 0.93032779532320797), (0.125, 0.75576791099973906, 0.75576791099973906), (0.25, 0.58413112562241909, 0.58413112562241909), (0.375, 0.41389524263548055, 0.41389524263548055), (0.5, 0.26372603126828165, 0.26372603126828165), (0.625, 0.16249519232276352, 0.16249519232276352), (0.75, 0.10922326738769267, 0.10922326738769267), (0.875, 0.089677516287552023, 0.089677516287552023), (1.0, 0.05913348735199072, 0.05913348735199072)], 'blue': [(0.0, 0.69109690224984077, 0.69109690224984077), (0.125, 0.53031307900834646, 0.53031307900834646), (0.25, 0.40291681995676154, 0.40291681995676154), (0.375, 0.32938102171259315, 0.32938102171259315), (0.5, 0.33885361881305626, 0.33885361881305626), (0.625, 0.37820659039971588, 0.37820659039971588), (0.75, 0.38729596513525039, 0.38729596513525039), (0.875, 0.33739313395770171, 0.33739313395770171), (1.0, 0.24304267442183591, 0.24304267442183591)]}

Erstellen Sie eine Colormap-Instanz mit cmap = cmocean.tools.cmap(rgbin, N=10), gegeben das RGB-Eingabearray.

Umgekehrte Versionen aller Colormaps sind verfügbar, indem „_r“ an den Colormap-Namen angehängt wird, genau wie bei matplotlib

import cmocean
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
cmocean.plots.test(cmocean.cm.gray, ax=ax)
ax = fig.add_subplot(1, 2, 2)
cmocean.plots.test(cmocean.cm.gray_r, ax=ax)
fig.tight_layout()

(Quellcode, png, hires.png, pdf)

_images/index-5.png

Sie können eine Colormap mit einem Alpha-Wert unter 1 mit der Funktion cmocean.tools.lighten() aufhellen, damit Sie Konturen und andere Linien überlagern können, die besser sichtbar sind

import cmocean
import cmocean.cm as cmo
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
Z = np.random.randn(10,10)
ax.pcolormesh(Z, cmap=cmo.matter)

ax = fig.add_subplot(1, 2, 2)
lightcmap = cmocean.tools.lighten(cmo.matter, 0.5)
ax.pcolormesh(Z, cmap=lightcmap)
fig.tight_layout()

(Quellcode, png, hires.png, pdf)

_images/index-6.png

cmocean registriert seine Colormaps bei matplotlib, sodass Sie sie zum Beispiel mit „cmo.amp“ aufrufen können

import cmocean
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(4, 3))
ax = fig.add_subplot(111)
Z = np.random.randn(10,10)
ax.pcolormesh(Z, cmap='cmo.amp')

(Quellcode, png, hires.png, pdf)

_images/index-7.png

Beschneiden einer Colormap

Sie können ein oder beide Enden einer Colormap entweder nach den Werten, die Sie mit den Daten darstellen möchten, oder nach Prozent abschneiden. Zum Beispiel können Sie beide Enden einer Colormap prozentual abschneiden, um den Helligkeitsbereich zu reduzieren und die dunkelsten Werte nicht zu verwenden

import cmocean
import matplotlib.pyplot as plt

cmap = cmocean.cm.tarn
fig, axes = plt.subplots(1, 2, figsize=(8,4))
A = np.random.randint(-5, 6, (10,10))
mappable = axes[0].pcolormesh(A, cmap=cmap)
axes[0].set_title('Full diverging colormap')
fig.colorbar(mappable, ax=axes[0])

newcmap = cmocean.tools.crop_by_percent(cmap, 30, which='both', N=None)
mappable = axes[1].pcolormesh(A, cmap=newcmap)
axes[1].set_title('Same colormap,\n30% removed from each end')
fig.colorbar(mappable, ax=axes[1])

(Quellcode, png, hires.png, pdf)

_images/index-8.png

Sie können ein Ende einer Colormap prozentual abschneiden. Zum Beispiel können Sie den oberen Teil der oxy-Colormap abschneiden, falls Sie keine übersättigten Bedingungen (oberste 20 % der Colormap) berücksichtigen, können Sie sie wie folgt aus der Colormap entfernen

import cmocean
import matplotlib.pyplot as plt

cmap = cmocean.cm.oxy
fig, axes = plt.subplots(1, 2, figsize=(8,4))
A = np.random.randint(0, 101, (10,10))
mappable = axes[0].pcolormesh(A, vmin=0, vmax=100, cmap=cmap)
axes[0].set_title('Values go to super-saturated')
fig.colorbar(mappable, ax=axes[0])

newcmap = cmocean.tools.crop_by_percent(cmap, 20, which='max', N=None)
A[A>80] = 80
mappable = axes[1].pcolormesh(A, vmin=0, vmax=80, cmap=newcmap)
axes[1].set_title('Values are all\nbelow super-saturated')
fig.colorbar(mappable, ax=axes[1])

(Quellcode, png, hires.png, pdf)

_images/index-9.png

Sie können einen Teil eines Endes einer Colormap entfernen, indem Sie die Werte eingeben, die Sie in Ihrem Plot verwenden möchten, und die Funktion ermitteln lassen, wie viel von der Colormap abgeschnitten werden soll. Dies kann besonders nützlich sein, wenn Sie kombinierte Bathymetrie- und Topographiedaten (Meerestiefen und Landhöhen) mit der topo-Colormap darstellen möchten, Sie aber möchten, dass die maximalen Magnituden für Wasser und Land unterschiedlich sind und dies in der Colormap widergespiegelt wird.

import cmocean
import matplotlib.pyplot as plt

cmap = cmocean.cm.topo
fig, axes = plt.subplots(1, 2, figsize=(8,4))
A = np.random.randint(-50, 201, (10,10))
mappable = axes[0].pcolormesh(A, vmin=-200, vmax=200, cmap=cmap)
axes[0].set_title('No values<-50, but still\nshow possibility in colorbar')
fig.colorbar(mappable, ax=axes[0])

newcmap = cmocean.tools.crop(cmap, -50, 200, 0)
mappable = axes[1].pcolormesh(A, vmin=-50, vmax=200, cmap=newcmap)
axes[1].set_title('Colorbar only shows color\nrange used by data')
fig.colorbar(mappable, ax=axes[1])

(Quellcode, png, hires.png, pdf)

_images/index-10.png

Colormap-Details

thermal

Die thermal Colormap ist sequenziell, wobei dunkles Blau niedrigere, kühlere Werte darstellt und sich über Rot bis Gelb erstreckt, was höhere, wärmere Werte darstellt.

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_water_temp.png

Glider-Daten von Texas A&M’s Geochemical and Environmental Research Group (GERG).

https://media.springernature.com/m685/springer-static/image/art%3A10.1038%2Fs41598-017-16760-0/MediaObjects/41598_2017_16760_Fig5_HTML.jpg

Daten aus der Publikation: Kenel, C., Grolimund, D., Li, X., Panepucci, E., Samson, V. A., Sanchez, D. F., … & Leinenbach, C. (2017). In situ investigation of phase transformations in Ti-6Al-4V under additive manufacturing conditions combining laser melting and high-speed micro-X-ray diffraction. Scientific reports, 7(1), 16358.

http://www.mdpi.com/sensors/sensors-17-02679/article_deploy/html/images/sensors-17-02679-g002-550.jpg

Usamentiaga, R., Ibarra-Castanedo, C., Klein, M., Maldague, X., Peeters, J., & Sanchez-Beato, A. (2017). Nondestructive evaluation of carbon fiber bicycle frames using infrared thermography. Sensors, 17(11), 2679.

https://user-images.githubusercontent.com/3487237/42728531-d732b9ee-8781-11e8-90da-6f54007fe142.png

Temperaturplot von CTD-Daten für den oberen Ozean; erstellt von Luz Zarate Jimenez.

https://user-images.githubusercontent.com/3487237/42728546-16b3a448-8782-11e8-8971-f1e11631645d.png

pH-Plot von Flaschen-Daten über die gesamte Wassertiefe, wobei die Punkte die Tiefen darstellen, in denen Flaschenwasser entnommen wurde; erstellt von Luz Zarate Jimenez.

https://www.tandfonline.com/na101/home/literatum/publisher/tandf/journals/content/zela20/2018/zela20.v070.i01/16000870.2018.1471911/20180605/images/large/zela_a_1471911_f0001_c.jpeg

WUNSCH, C. (2018). Towards determining uncertainties in global oceanic mean values of heat, salt, and surface elevation. Tellus A: Dynamic Meteorology and Oceanography, 70(1), 1-14.

https://pbs.twimg.com/media/Cxjs6Z8WQAAc_uX.jpg

Temperaturdarstellung in der Meteorologieforschung, von Maarten Reyniers.

https://pbs.twimg.com/media/CxtJS8eW8AEGmIm.jpg

MODIS-Meeresoberflächentemperatur von NASA OBPG, von Sebastian Steinke.

https://data.ioos.us/gliders/status/summary/static/profiles/drudnick/sp069-20181109T1607/temperature.png

Glider-Daten vom Mid-Atlantic Regional Association Coastal Ocean Observing System (MARACOOS).

https://www.tecplot.com/wp-content/gallery/geoscience/pugetsound_webimage.jpg

Visualisierung von Ozeanmodellen von tecplot.

https://ars.els-cdn.com/content/image/1-s2.0-S0967063718301638-gr2.jpg

Potter, H. (2018). The cold wake of typhoon Chaba (2010). Deep Sea Research Part I: Oceanographic Research Papers, 140, 136-141.

haline

Die haline Colormap ist sequenziell und könnte mit dunkelblau für geringere Salinität oder Süßwasser verwendet werden, die sich über Grün zu hellgelb für erhöhte Salinität oder salzigeres Wasser erstreckt. Diese Colormap basiert auf Matplotlibs YlGnBu, wurde aber mit dem viscm-Tool von Grund auf neu erstellt.

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/calc_salinity.png

Glider-Daten von Texas A&M’s Geochemical and Environmental Research Group (GERG).

http://pong.tamu.edu/~kthyng/movies/txla_plots/salt/2010-07-30T00.png

Modellausgabe im nordwestlichen Golf von Mexiko von der Physical Oceanography Numerical Group (PONG) an der Texas A&M.

http://clarkrichards.org/figure/source/2016-04-25-making-section-plots/plot2-1.png

Darstellung von CTD-Daten (Temperatur und Salzgehalt) mit dem R oce-Paket, von Clark Richards

https://user-images.githubusercontent.com/3487237/42728526-cd276e68-8781-11e8-9d77-db486b479a6d.png

Alkalinitätsplot von Flaschen-Daten über die gesamte Wassertiefe, wobei die Punkte die Tiefen darstellen, in denen Flaschenwasser entnommen wurde; erstellt von Luz Zarate Jimenez.

https://user-images.githubusercontent.com/3487237/42728535-df605f5e-8781-11e8-973e-0f7385daef3c.png

Salinitätsplot von CTD-Daten für den oberen Ozean; erstellt von Luz Zarate Jimenez.

https://data.ioos.us/gliders/status/summary/static/profiles/drudnick/sp069-20181109T1607/salinity.png

Glider-Daten vom Mid-Atlantic Regional Association Coastal Ocean Observing System (MARACOOS).

solar

Die solar Colormap ist sequenziell von dunkelbraun für niedrige Werte zu zunehmend hellem Gelb, um eine Zunahme der Strahlung im Wasser darzustellen.

https://plot.ly/~empet/13620.png

Histogramm von plotly.

ice

Die ice Colormap ist sequenziell von sehr dunkelblau (fast schwarz) bis sehr hellblau (fast weiß). Ein möglicher Anwendungsfall sind Darstellungen von Meereis.

http://www.mathworks.com/matlabcentral/mlc-downloads/downloads/submissions/50126/versions/4/previews/seaice/html/SeaIceTimeSeries_20160620.gif

Ein Beispiel von Chad Greene zeigt die Konzentration von Meereis rund um die Antarktis.

https://media.giphy.com/media/26xBFRODTXDBKSmVa/giphy.gif

Arktische Meereisdicke von Nikolay Koldunov.

gray

Die gray Colormap ist sequenziell von schwarz zu weiß, mit gleichmäßigen Schritten durch den wahrnehmungsbezogenen Farbraum. Diese Colormap ist generisch und kann für alle sequenziellen Datensätze verwendet werden.

import cmocean
import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 3))
ax = fig.add_subplot(1, 2, 1)
cmocean.plots.test(cmocean.cm.gray, ax=ax)
ax = fig.add_subplot(1, 2, 2)
cmocean.plots.quick_plot(cmocean.cm.gray, ax=ax)

(Quellcode, png, hires.png, pdf)

_images/index-11.png

oxy

Die oxy Colormap ist für den größten Teil der Colormap sequenziell und stellt den normalen Bereich der Sauerstoffsättigung im Meerwasser dar. Sie divergiert 80 % der Colormap, um einen Zustand der Übersättigung darzustellen. Die unteren 20 % der Colormap sind rötlich gefärbt, um hypoxisches oder sauerstoffarmes Wasser hervorzuheben, aber dennoch relativ nahtlos in Graustufen zu drucken, falls der rote Farbton für eine Anwendung nicht wichtig ist. Die oberen 20 % der Colormap nach der Divergenz sind gelb gefärbt, um das übersättigte Wasser hervorzuheben. Die Minimal- und Maximalwerte dieser Colormap sollen kontrolliert werden, um die Zustände mit niedrigem und übersättigtem Sauerstoff richtig zu positionieren. Diese Colormap wurde für die Mississippi-Flussplume-Region entwickelt, wo sowohl niedrige als auch übersättigte Bedingungen regelmäßig auftreten und überwacht werden.

https://cloud.githubusercontent.com/assets/3487237/16996267/85ac01ea-4e7e-11e6-9801-ee97f7e65940.png

Modellausgabe im nordwestlichen Golf von Mexiko von der Physical Oceanography Numerical Group (PONG) an der Texas A&M. Eine Simulation des Boden-Sauerstoffs unter Verwendung einer einfachen Parametrisierung der Boden-Sauerstoffverwertung offenbart die komplexe Struktur des Boden-Sauerstoffs. Während sich das von Hypoxie betroffene Gebiet fast 400 km entlang des Schelfs erstreckt, sind auch Variabilitäten auf viel kleineren Skalen, bis hin zu wenigen Kilometern, erkennbar. Die Position der Mississippi/Atchafalaya-Flussplume und Instabilitäten innerhalb der Plume bestimmen das Ausmaß und die Struktur der hypoxischen Bodenwässer. Von Veronica Ruiz an der Texas A&M.

https://user-images.githubusercontent.com/3487237/42728540-0d24e28e-8782-11e8-8874-82e65d76ef34.png

Sauerstoffplot von CTD-Daten für den oberen Ozean; erstellt von Luz Zarate Jimenez.

deep

Die deep Colormap ist sequenziell von hellgelb, um flacheres Wasser darzustellen, über blasses Grün bis hin zu zunehmend dunkelblau und lila, um zunehmende Tiefe darzustellen.

https://cloud.githubusercontent.com/assets/3487237/16900541/4af66c4c-4bf5-11e6-92a9-82eaa39cb18b.png

Bathymetrie-Plot, von Iury Sousa

https://user-images.githubusercontent.com/3487237/42728981-de0d3ee4-878e-11e8-89ca-b124c49d5d0e.png

Bathymetrie der Somow-See, von Josué Martinez Moreno, in blender

https://media.springernature.com/lw900/springer-static/image/art%3A10.1038%2Fs41467-018-05618-2/MediaObjects/41467_2018_5618_Fig1_HTML.png

Gwyther, D. E., O’Kane, T. J., Galton-Fenzi, B. K., Monselesan, D. P., & Greenbaum, J. S. (2018). Intrinsic processes drive variability in basal melting of the Totten Glacier Ice Shelf. Nature communications, 9(1), 3141.

dense

Die dense Colormap ist sequenziell mit weißlich-blau für niedrige Werte und zunehmend lila mit zunehmendem Wert, was zur Darstellung einer Zunahme der Wasserdichte verwendet werden könnte. Zwei Beispiele dieser Colormap sind unten zu sehen, von Texas A&M University Gliders. Diese Colormap basiert auf Matplotlibs Purples, wurde aber mit dem viscm-Tool von Grund auf neu erstellt.

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/calc_density.png
https://user-images.githubusercontent.com/3487237/42728541-11ed4d7e-8782-11e8-945c-1e2dcdb61ace.png

Dichtepotenzial-Plot von CTD-Daten für den oberen Ozean; erstellt von Luz Zarate Jimenez.

http://www.sfestuary.org/wp-content/uploads/2012/09/nut-500model_nh4-landsatgray.jpg

Geschätztes Ammonium in der San Francisco Bay von Rusty Holleman.

algae

Die algae Colormap ist sequenziell mit weißlich-grün für niedrige Werte und zunehmend grün mit zunehmendem Wert, was zur Darstellung einer Zunahme des Chlorophyllgehalts im Wasser verwendet werden könnte. Zwei Beispiele dieser Colormap sind unten zu sehen, von Texas A&M University Gliders. Diese Colormap basiert auf Matplotlibs Greens, wurde aber mit dem viscm-Tool von Grund auf neu erstellt.

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_flbbcd_chlor_units.png
https://rbr-global.com/wp-content/uploads/2016/09/WireWalker_data_wide_zoom.png

Beispieldaten von RBRs Del Mar Oceanographic (DMO) Wirewalker, einem wellengetriebenen Profilsystem.

https://pbs.twimg.com/media/Cs_3GXbXgAAPwFQ.png

Satelliten-abgeleitetes Chl-a mit markierten Stellen, von Frankie Pavia.

matter

Die matter Colormap ist sequenziell mit weißlich-gelb für niedrige Werte und zunehmend rosa mit zunehmendem Wert, und könnte zur Darstellung einer Zunahme von Material im Wasser verwendet werden. Zwei Beispiele dieser Colormap sind unten zu sehen, von Texas A&M University Gliders.

http://gandalf.gcoos.org/data/gandalf/tamu/unit_307/2017/2017_12_18/plots/sci_flbbcd_cdom_units.png
http://www.sfestuary.org/wp-content/uploads/2012/09/Nut-model_din-landsatgray-500.jpg

Geschätzter gelöster Stickstoff in der San Francisco Bay von Rusty Holleman.

turbid

Die turbid Colormap ist sequenziell von hellbraun zu dunkelbraun und könnte zur Darstellung einer Zunahme von Sedimenten im Wasser verwendet werden.

https://user-images.githubusercontent.com/3487237/42729003-c604db6c-878f-11e8-97e8-978d6c172f3e.png

Daten von Queensland, von Emilia P. (@mathinpython).

speed

Die speed Colormap ist sequenziell von hellgrün-gelb für niedrige Werte zu dunkelgelb-grün für große Werte. Diese Colormap ist die positive Hälfte der delta Colormap. Ein Beispiel für diese Colormap stammt aus einer numerischen Simulation der Texas- und Louisiana-Schelfe.

http://pong.tamu.edu/~kthyng/movies/txla_plots/speed/2010-07-30T00.png

amp

Die amp Colormap ist sequenziell von weißlich zu dunkelrot und könnte zur Darstellung einer Zunahme von Wellenhöhenwerten verwendet werden. Diese Colormap ist die positive Hälfte der balance Colormap.

https://cloud.githubusercontent.com/assets/3487237/16920916/840d91d4-4cdd-11e6-8db5-f93cd61b78c2.png

Erdbebenmagnitude, von Natalie Accardo mit GMT.

https://media.springernature.com/lw900/springer-static/image/art%3A10.1038%2Fs41598-018-35936-w/MediaObjects/41598_2018_35936_Fig2_HTML.png

Baumgartner, B. L., O’Laughlin, R., Jin, M., Tsimring, L. S., Hao, N., & Hasty, J. (2018). Flavin-based metabolic cycles are integral features of growth and division in single yeast cells. Scientific reports, 8(1), 18045.

https://www.frontiersin.org/files/Articles/422317/fmars-05-00447-HTML/image_m/fmars-05-00447-g004.jpg

Lenhart, H. J., & Große, F. (2018). Assessing the effects of WFD nutrient reductions within an OSPAR frame using trans-boundary nutrient modeling. Frontiers in Marine Science, 5, 447.

https://ars.els-cdn.com/content/image/1-s2.0-S0380133018301321-gr4_lrg.jpg

Grunert, B. K., Brunner, S. L., Hamidi, S. A., Bravo, H. R., & Klump, J. V. (2018). Quantifying the influence of cold water intrusions in a shallow, coastal system across contrasting years: Green Bay, Lake Michigan. Journal of Great Lakes Research, 44(5), 851-863.

tempo

Die tempo Colormap ist sequenziell von weißlich zu dunkelblaugrün und könnte zur Darstellung einer Zunahme von Wellenperiodenwerten verwendet werden. Diese Colormap ist die negative Hälfte der curl Colormap.

http://www.sfestuary.org/wp-content/uploads/2012/09/nut500-model_no3-landsatgray.png

Geschätzter Nitrat in der San Francisco Bay von Rusty Holleman.

rain

Die rain Colormap ist sequenziell von hellen, trockenen Farben zu blauen, nassen Farben und könnte zur Darstellung von Niederschlagsmengen verwendet werden.

https://user-images.githubusercontent.com/3487237/51001559-092d8800-14f6-11e9-93d4-57379b4c7701.png

Niederschlag, von Chad Greene.

phase

Die phase Colormap ist zirkulär und deckt alle Farbtöne bei einem festgelegten Helligkeitswert ab. Diese Karte soll für Eigenschaften wie Wellenphase und Gezeitenphase verwendet werden, die von 0˚ bis 360˚ bis 0˚ verlaufen und ohne größere wahrnehmungsbezogene Sprünge in der Colormap dargestellt werden sollten.

https://user-images.githubusercontent.com/3487237/42728991-41ed6e0c-878f-11e8-80ad-4623b26de2cc.png

Gezeitenphase im Nordatlantik, von Kristen Thyng.

topo

Die topo Colormap hat zwei unterschiedliche Teile: einen, der blaue und gelbe Farbtöne zur Darstellung von Wassertiefen (dies ist die deep Colormap) aufweist, und einen, der braune und grüne Farbtöne zur Darstellung von Landhöhen aufweist.

https://user-images.githubusercontent.com/3487237/51001557-0894f180-14f6-11e9-9f8e-94fc0ffcfe11.png

Bathymetrie und Topographie, von Chad Greene.

balance

Die balance Colormap ist divergent mit dunkelblau bis cremeweiß bis dunkelrot, was negative bis null bis positive Werte darstellt; dies könnte zur Darstellung der Meeresoberflächenhöhe verwendet werden, mit Abweichungen in den Oberflächenhöhen als Farbtöne weg von neutralem Cremeweiß. In diesem Fall wurden Rottöne gewählt, um die Meeresoberflächenhöhe über dem Referenzwert (oft der mittlere Meeresspiegel) darzustellen, um an wärmeres Wasser anzuknüpfen, das typischerweise mit einer Erhöhung der freien Oberfläche verbunden ist, wie beim Loop Current im Golf von Mexiko. Ein Beispiel für diese Colormap stammt aus einer numerischen Simulation der Texas- und Louisiana-Schelfe. Diese Colormap basiert auf Matplotlibs RdBu, wurde aber mit dem viscm-Tool von Grund auf neu erstellt.

http://pong.tamu.edu/~kthyng/movies/txla_plots/ssh/2010-07-30T00.png
https://pbs.twimg.com/media/CsWzox7UsAAeKwS.jpg

Spatial Temporal Oceanographic Query System (STOQS)

delta

Die delta Colormap divergiert von dunkleren Blautönen über ein leicht cremefarbenes Weiß bis hin zu Gelbgrün und könnte zur Darstellung divergierender Geschwindigkeitswerte um einen kritischen Wert (normalerweise Null) verwendet werden. Diese Colormap wurde von Francesca Samsels ähnlicher Colormap inspiriert, aber mit dem viscm-Tool von Grund auf neu generiert.

https://pbs.twimg.com/media/CkIWDFRWkAEdArC.jpg

Von Plotly.

http://pong.tamu.edu/~kthyng/movies/txla_plots/u/2010-07-30T00.png

Modellausgabe im nordwestlichen Golf von Mexiko von der Physical Oceanography Numerical Group (PONG) an der Texas A&M.

curl

Die curl Colormap divergiert von dunklerem Blaugrün über ein leicht cremefarbenes Weiß bis hin zu Magenta und könnte zur Darstellung divergierender Wirbelwerte um einen kritischen Wert (normalerweise Null) verwendet werden.

http://pong.tamu.edu/~kthyng/movies/txla_plots/vort/2010-07-30T00.png

Ein Beispiel für diese Colormap stammt aus einer numerischen Simulation der Texas- und Louisiana-Schelfe.

https://pbs.twimg.com/media/CuqlwdJWIAA1wT1.jpg

diff

Die diff Colormap ist divergent, mit einer Seite blaue Farbtöne und einer Seite braune Farbtöne.

https://user-images.githubusercontent.com/3487237/51001561-092d8800-14f6-11e9-868b-009e947ed5eb.png

Oberflächendruckanomalie für Dezember 2017, von Chad Greene.

tarn

Die tarn Colormap ist divergent, mit einer Seite trockene Brauntöne und der andere eine Reihe von Grün- und Blautönen. Das positive Ende der Colormap soll die Farben in rain widerspiegeln und somit eine komplementäre Colormap zu rain für Regen-Anomalien (um 0 oder einen anderen kritischen Wert) sein.

https://user-images.githubusercontent.com/3487237/51001558-0894f180-14f6-11e9-91e1-3ef9e28fcc81.png

Regenanomalie, von Chad Greene.

Ressourcen

Hier sind einige meiner Lieblingsressourcen.

cmocean auch anderswo verfügbar!

  • colormap
  • julia
  • Spatial Temporal Oceanographic Query System (STOQS) ist ein Softwarepaket für Geodatenbanken, das für den effizienten Zugriff auf ozeanographische Messdaten vor Ort entwickelt wurde.

Beispiele für schöne Visualisierungen:

Warum Jet eine schlechte Colormap ist und wie man bessere wählt:

  • Dies ist der Artikel, der für mich alles begann: Why Should Engineers and Scientists Be Worried About Color?
  • Eine ausgezeichnete Reihe über Jet und die Auswahl von Colormaps, die Ihnen wirklich das beibringen, was Sie wissen müssen, von Matteo Niccoli
  • Schöne Zusammenfassung von Argumenten gegen Jet von Jake Vanderplas
  • Eine gute Zusammenfassung in der Bulletin of the American Meteorological Society (BAMS) über Visualisierungsforschung und die Präsentation eines Tools zur Auswahl guter Colormaps, das auf atmosphärische Forschung abzielt, aber weitgehend anwendbar ist.
  • Dieses Tool konvertiert Ihr (kleines Dateigrößen-)Bild in die Darstellung, wie es für jemanden mit verschiedenen Arten von Farbenblindheit aussehen würde, damit Sie bessere Entscheidungen über die verwendeten Farben treffen können.
  • Dokumentation von der Matplotlib-Plotting-Paketseite zur Auswahl von Colormaps.
  • Tipps zur Auswahl einer guten wissenschaftlichen Colormap
  • Das Ende des Regenbogens, ein Plädoyer, Jet nicht mehr zu verwenden.
  • Forschungsergebnisse zeigen, dass Jet schlecht für Ihre Gesundheit ist!
  • Die erneute Untersuchung einer früheren Studie scheint visuelle Beweise zu zeigen, die darauf hindeuten, dass eine Front tatsächlich nur ein Artefakt der Jet-Colormap ist.

Es gibt eine Reihe von Vorträgen von der SciPy-Konferenz 2014 und 2015 über Colormaps

  • Damon McDougall stellt das Problem mit Jet für die Darstellung von Daten vor.
  • Kristen Thyng folgt mit der Frage, wie man bessere Colormaps wählt, einschließlich der Verwendung von wahrnehmungsuniformen Colormaps und der Berücksichtigung, ob die dargestellten Informationen sequenzieller oder divergierender Natur sind.
  • Nathaniel Smith und Stéfan van der Walt erklären mehr darüber, dass die Jet-Colormap schlecht ist, sogar schlecht für Ihre Gesundheit! Sie legen daraufhin eine neue Colormap für Matplotlib, eine Python-Plotting-Bibliothek, vor.
  • Kristen Thyng baut auf der Arbeit von Nathaniel und Stéfan auf und schlägt Colormaps vor, um typische ozeanographische Größen darzustellen (was zu cmocean führte!).

Weitere Tipps für die Erstellung guter Abbildungen:

  • Dieser Link enthält eine Reihe von Tipps zur Auswahl von Linienfarben, Colormaps und zur Verwendung von diskreten vs. kontinuierlichen Colormaps.
  • How to graph badly or what not to do enthält Tipps, insbesondere für Linien- und Balkendiagramme, und eine Zusammenfassung einiger Tipps des Design-Gurus Edward Tufte.

Werkzeuge zur Erstellung schöner Abbildungen:

  • Seaborn hilft Ihnen, sehr gut aussehende statistische Diagramme zu erstellen.

Kontakt

Kristen Thyng ist die Hauptentwicklerin von cmocean. Bitte senden Sie mir Fragen, Kommentare und Ideen per E-Mail. Ich sammle Beispiele, wie die Colormaps in Aktion verwendet werden (siehe oben) und auch Benutzer der Colormaps, daher würde ich mich freuen, von Ihnen zu hören, wenn Sie cmocean verwenden. kthyng at gmail.com oder auf Twitter @thyngkm.

Indizes und Tabellen