默认配色辣眼睛?!那是你没发现这些宝藏学术颜色包(Colormaps)~~

2021-12-09 14:58:36 浏览数 (1)

这两天有小伙伴私信我说想使用Python-Matplotlib绘制一些学术图表,都纷纷吐槽其默认的颜色表(colormap) 真的是一言难尽。哈哈,小编也是这么觉得的,那么,今天这篇推文,小编就系统介绍一下优秀的关于Matplotlib颜色表(colormap) 第三方库。主要内容如下:

  • 偏学术类型
  • 偏艺术类型

偏学术类型

Python-Matplotlib的偏学术类型的colormap,想必是很多小伙伴急需了解的,小编就介绍以下几个库,当然,还有小伙伴们心心念念的MATLAB的颜色表哦~

Python-scicomap包

Python-scicomap包可以说是专门为Matplotlib提供科学学术图表的配色,其含有单色系(sequential), 双单色系(bi-sequential), 双色渐变系(diverging), 循环色系(circular), 多色系(qualitative) 和混杂色系(miscellaneous) 颜色表。接下来我们列举下几个样例查看下:

  • 样例一:
代码语言:javascript复制
import scicomap as sc
import matplotlib.pyplot as plt

# the thing that should not be
ugly_jet = plt.get_cmap("jet")
sc_map =  sc.ScicoMiscellaneous(cmap=ugly_jet)
f=sc_map.assess_cmap(figsize=(22,10))
f.set_facecolor("w")

Example01 Of scicomap

  • 样例二:Comparing color maps
代码语言:javascript复制
c_l =  ["cividis", "inferno", "magma", "plasma", "viridis"]
f = sc.plot_colorblind_vision(ctype='sequential', 
                              cmap_list=c_l, 
                              figsize=(30, 4), 
                              n_colors=11, 
                              facecolor="black")

Comparing scicomap color maps

  • 样例三:
代码语言:javascript复制
f = sc.compare_cmap(image="grmhd", 
                    ctype='sequential', 
                    ncols=15, 
                    uniformize=True, 
                    symmetrize=True, 
                    unif_kwargs={'lift': 20}, 
                    sym_kwargs={'bitonic': False, 'diffuse': True})

Sequential color maps

  • 样例四:
代码语言:javascript复制
f = sc.compare_cmap(image="vortex", 
                    ctype='diverging', 
                    ncols=15, 
                    uniformize=True, 
                    symmetrize=True, 
                    unif_kwargs={'lift': None}, 
                    sym_kwargs={'bitonic': False, 'diffuse': True})

Diverging color maps

更多关于scicomap颜色包详细内容,大家可参考:Python-scicomap包[1]

Python-colorcet包

colorcet包包含太多类型的颜色系了,这里也不过多赘述,直接上案例:

  • 样例一:
代码语言:javascript复制
import holoviews as hv
import colorcet as cc
from colorcet.plotting import swatches, sine_combs

hv.notebook_extension("matplotlib")

swatches(group="linear")

Linear (sequential) colormaps, for plotting magnitudes

  • 样例二:
代码语言:javascript复制
swatches(group='diverging')

Diverging colormaps, for plotting magnitudes increasing or decreasing from a central point

  • 样例三:
代码语言:javascript复制
swatches(group='nopic')

Colorblind-safe colormaps

  • 样例四:
代码语言:javascript复制
misc = [name for name in cc.all_original_names() if "cyclic" in name or "isoluminant" in name or "rainbow" in name]
swatches(*misc)

Misc colormaps

更多关于colorcet颜色包详细内容,大家可参考:Python-colorcet包[2]

Python-cmasher包

Python-cmasher包也是为学术配色所设计出的一个Matplotlib颜色包,这里直接列举几个色系即可,如下:

  • 样例一:Sequential colormaps

amber

amber_viscm

eclipse

eclipse_viscm

  • 样例二:Diverging colormaps

copper

copper_viscm

prinsenvlag

prinsenvlag_viscm

更多关于cmasher颜色包详细内容,大家可参考:Python-cmasher包[3]

Python-viscm包

Python-viscm包是小编比较喜欢的一个,因为其提供了MATLAB的默认颜色主题,相信许多小伙伴还是蛮期待的,话不多说,直接列举样例,如下:

  • 样例一:PARULA

parula

  • 样例二:PLASMA

PLASMA

  • 样例三:VIRIDIS

VIRIDIS

更多关于viscm颜色包详细内容,大家可参考:Python-viscm包[4]

偏艺术类型

这一部分我们给出的是一个偏清新的颜色,也就是Python-vapeplot包,详细内容如下:

  • 样例一:
代码语言:javascript复制
import vapeplot
%matplotlib inline
vapeplot.available()

vapeplot example

  • 样例二:
代码语言:javascript复制
vapeplot.view_palette("cool",'sunset')

view_palette

  • 样例三:cool
  • 样例四:avanti

更多关于vapeplot颜色包详细内容,大家可参考:Python-vapeplot包[5]

总结

本期这篇推文小编给大家列举了几个学术和商业Matplotlib颜色包,大家可以选择自己喜欢的学术配色进行论文的绘制~~

再小的技能,也应该被认真对待。

参考资料

[1]Python-scicomap包: https://github.com/ThomasBury/scicomap。

[2]Python-colorcet包: https://colorcet.holoviz.org/。

[3]Python-cmasher包: https://cmasher.readthedocs.io/。

[4]Python-viscm包: https://bids.github.io/colormap/。

[5]Python-vapeplot包: https://github.com/dantaki/vapeplot。

0 人点赞