Schöne Colormaps für die Ozeanographie: cmocean

Dieses Paket enthält Colormaps für häufig verwendete ozeanografische Variablen. Die meisten Colormaps basieren auf matplotlib Colormaps, wurden aber jetzt mit dem viscm-Tool angepasst, um wahrnehmungsmäßig einheitlich 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 so gewählt, dass sie wahrnehmungsmäßig einheitlich sind und die von ihnen dargestellten Daten widerspiegeln, indem sie sequenziell, divergent oder zyklisch (Phasen-Colormap) sind und intuitiv sind. Zum Beispiel repräsentiert die algae Colormap 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. Diagramme 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 druckt, konsistente wahrnehmungsmäßige Deltas über die gesamte Colormap hinweg aufweist und für Menschen mit Farbblindheit 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 Untermodul plots 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 gezeichnet 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 können mit cmocean.cm.cmapnames abgerufen werden

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;

Alle verfügbaren Colormaps in Textdateien mit 256 RGB-Einträgen ausgeben mit

cmaps = cmocean.cm.cmap_d

cmocean.tools.print_colormaps(cmaps)

Eine Dictionary ausgeben, um eine Colormap zu definieren 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) unter Angabe des RGB-Eingangsarrays.

Umgekehrte Versionen aller Colormaps sind verfügbar, indem an den Colormap-Namen "_r" 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 besser sichtbar überlagern können

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 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 berücksichtigen (oberste 20 % der Colormap), können Sie diese 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 Diagramm verwenden möchten, und die Funktion ermitteln lassen, wie viel von der Colormap abgeschnitten werden soll. Dies könnte besonders nützlich sein, wenn Sie kombinierte Bathymetrie- und Topographiedaten (Meer- und Landeshö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 repräsentiert und über Rottöne zu Gelb übergeht, was erhöhte wärmere Werte repräsentiert.

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

Temperaturdiagramm 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-Diagramm von Flaschen-Daten in voller Wassertiefe, wobei die Punkte die Tiefen darstellen, in denen Wasserproben gesammelt wurden; 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 Meteorologie-Arbeit, 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 von 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 dunklem Blau für niedrigere Salinität oder Süßwasser verwendet werden, Übergänge durch Grüntöne zu hellgelb für erhöhte Salinität oder salzigeres Wasser. 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ätsdiagramm von Flaschen-Daten in voller Wassertiefe, wobei die Punkte die Tiefen darstellen, in denen Wasserproben gesammelt wurden; erstellt von Luz Zarate Jimenez.

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

Salinitätsdiagramm 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 von 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) zu sehr hellblau (fast weiß). Ein Anwendungsfall hierfür könnte die Darstellung von Meereis sein.

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

Ein Beispiel von Chad Greene, das die Meereiskonzentration rund um die Antarktis zeigt.

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

Arktische Meereisdicke von Nikolay Koldunov.

gray

Die gray Colormap ist sequenziell von schwarz nach weiß, mit gleichmäßigen Schritten durch den wahrnehmungsphysikalischen Farbraum. Diese Colormap ist generisch und kann für beliebige sequentielle 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 größtenteils sequenziell und repräsentiert den normalen Bereich der Sauerstoffsättigung im Meerwasser. Sie divergiert zu 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 niedrigen und übersättigten Sauerstoffs richtig zu platzieren. Diese Colormap wurde für das Mississippi-Flussplume-Gebiet entwickelt, wo sowohl niedrige als auch übersättigte Bedingungen regelmäßig beobachtet 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 von Bodensauerstoff unter Verwendung einer einfachen Parametrisierung der Bodensauerstoffnutzung zeigt die komplexe Struktur des Bodensauerstoffs. Während sich die von Hypoxie betroffene Fläche fast 400 km entlang des Schelfs erstreckt, ist auch eine Variabilität auf viel kleineren Skalen bis zu wenigen Kilometern erkennbar. Die Position des Mississippi/Atchafalaya-Flussplumes und die im Plume vorhandenen Instabilitäten bestimmen das Ausmaß und die Struktur des hypoxischen Bodenwassers. Von Veronica Ruiz an der Texas A&M.

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

Sauerstoffdiagramm 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 blassgrün zu zunehmend dunkelblau und lila, um zunehmende Tiefe darzustellen.

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

Bathymetriediagramm, von Iury Sousa

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

Somov Sea Bathymetrie, 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 steigendem Wert, was zur Darstellung einer Zunahme der Wasserdichte verwendet werden könnte. Zwei Beispiele dieser Colormap sind unten dargestellt, von Glidern der Texas A&M University. 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

Potentialdichte-Diagramm 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 steigendem Wert, was zur Darstellung einer Zunahme des Chlorophylls im Wasser verwendet werden könnte. Zwei Beispiele dieser Colormap sind unten dargestellt, von Glidern der Texas A&M University. 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 wellenbetriebenen Profilsystem.

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

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

matter

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

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 bis 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ünlich-gelb, das niedrige Werte repräsentiert, zu dunkelgelb-grün, das große Werte repräsentiert. Diese Colormap ist die positive Hälfte der delta Colormap. Ein Beispiel für diese Colormap stammt aus einer numerischen Simulation des Texas- und Louisiana-Schelfs.

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

amp

Die amp Colormap ist sequenziell von weißlich bis 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 bis dunkel-petrol 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ätztes 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 umfasst alle Farbtöne bei einem festen Helligkeitswert. Diese Karte ist für Eigenschaften wie Wellenphase und Gezeitenphase gedacht, die von 0° bis 360° und wieder zu 0° verlaufen und ohne größere wahrnehmungsmäßige 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 aus Blautönen und Gelb besteht, um Wassertiefen darzustellen (dies ist die deep Colormap), und einen, der aus Brauntönen und Grüntönen besteht, um Landeshöhen darzustellen.

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 über cremeweiß bis dunkelrot, was negative zu Null zu positive Werte darstellt; dies könnte zur Darstellung des Meeresspiegelstands verwendet werden, wobei Abweichungen im Oberflächenniveau als Farbabstufungen vom neutralen Cremeweiß dargestellt werden. In diesem Fall wurden Rottöne gewählt, um den Meeresspiegel über dem Referenzwert (oft Mittelmeeresspiegel) darzustellen, um eine Verbindung zu wärmerem Wasser herzustellen, das typischerweise mit einer Erhöhung der freien Oberfläche assoziiert wird, wie z. B. beim Loop Current im Golf von Mexiko. Ein Beispiel für diese Colormap stammt aus einer numerischen Simulation des Texas- und Louisiana-Schelfs. 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 zu fast cremeweiß über 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 dunkleren Petroltönen zu fast cremeweiß über Magentatöne und könnte zur Darstellung divergierender Vorticity-Werte 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 des Texas- und Louisiana-Schelfs.

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

diff

Die diff Colormap ist divergent, mit einer Seite Blautönen und einer Seite Brauntönen.

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 trockenen Brauntönen und der anderen einer Reihe von Grün- und Blautönen. Das positive Ende der Colormap soll die Farben von rain widerspiegeln und somit eine komplementäre Colormap zu rain für Regenanomalien (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 georäumiges Datenbanksoftwarepaket, das für den effizienten Zugriff auf in situ ozeanografische Messdaten entwickelt wurde.

Beispiele für schöne Visualisierungen:

  • Erde Wind/Strömungen/Temperatur/Alles Visualisierung: Dies ist eine wunderbare Visualisierung weltweiter Wind- und Meeresdynamik und -eigenschaften. Sie ist auch hervorragend zum Lehren geeignet, scheint sich ständig weiterzuentwickeln und neue Felder als Plotting-Optionen zu erhalten.
  • Diese Herbstlaubkarte ist einfach zu bedienen, klar und auffällig. Das ist es, was wir alle anstreben!
  • Eine clevere Visualisierung von The Upshot über politische Neigung in Abhängigkeit vom Geburtsjahr. Dies ist eine perfekte Anwendung der divergierenden Rot-zu-Blau-Colormap.

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

  • Dies ist der Artikel, der für mich alles begann: Why Should Engineers and Scientists Be Worried About Color?
  • Eine ausgezeichnete Serie über Jet und die Auswahl von Colormaps, die Ihnen wirklich vermitteln wird, was Sie wissen müssen, von Matteo Niccoli
  • Schöne Zusammenfassung der Argumente gegen Jet von Jake Vanderplas
  • Eine gute Zusammenfassung im Bulletin of the American Meteorological Society (BAMS) über Visualisierungsforschung und die Präsentation eines Tools zur Auswahl guter Colormaps, gerichtet an die atmosphärische Forschung, aber weitgehend anwendbar.
  • Dieses Tool konvertiert Ihr (kleines Dateigrößen-)Bild so, dass es für Menschen mit verschiedenen Arten von Farbblindheit aussieht, damit Sie bessere Entscheidungen über die verwendeten Farben treffen können.
  • Dokumentation von der Website des matplotlib Plotting-Pakets zur Auswahl von Colormaps.
  • Tipps zur Auswahl einer guten wissenschaftlichen Colormap
  • Das Ende des Regenbogens, ein Plädoyer, die Verwendung von Jet einzustellen.
  • Forschung zeigt, dass Jet schlecht für Ihre Gesundheit ist!
  • Neubewertung 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 von 2014 und 2015, die sich mit Colormaps befassen

  • Damon McDougall stellt das Problem mit Jet zur Darstellung von Daten vor.
  • Kristen Thyng folgt mit der Frage, wie man bessere Colormaps auswählt, einschließlich der Verwendung von wahrnehmungsmäßig einheitlichen Colormaps und der Überlegung, ob die dargestellten Informationen sequenzieller oder divergierender Natur sind.
  • Nathaniel Smith und Stéfan van der Walt erklären mehr über die schlechte Jet-Colormap, sogar schlecht für die Gesundheit! Sie schlagen dann eine neue Colormap für matplotlib vor, eine Python-Plot-Bibliothek.
  • Kristen Thyng baut auf der Arbeit von Nathaniel und Stéfan auf und schlägt Colormaps zur Darstellung typischer ozeanografischer Mengen vor (was zu cmocean! führte).

Weitere Tipps zum Erstellen guter Grafiken:

  • 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 Grafiken:

  • 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 für die Verwendung der Colormaps in Aktion (siehe oben) sowie 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