异步社区

异步社区是国内领先的IT专业图书社区,由人民邮电出版社主办,致力于优质学习内容的出版和分享。

34篇博客

使用正确的图表理解数据(五):使用颜色表下篇

异步社区2018-12-28 11:34
7.6.3 工作原理


从ColorBrewer网站找到红—黄—绿diverging颜色表的颜色。然后,在代码中列出这些颜色,并把它们应用到散点图中。


ColorBrewer是一个由Cynthia Brewer、Mark Harrower编写的We b工具,宾夕法尼亚州立大学开发了其中的颜色表。它是一个非常好用的工具,可以选择不同范围的颜色表并把它们应用在地图上。这样,你可以快速地了解它们显示在一个图表上的样子。


有时候,我们不得不在matplotlib.rcParams上做一些定制化,这是在创建一个图表或者坐标轴之前要做的第一件事情。例如,为了为大多数matplotlib函数设置默认的颜色表,需要改变配置参数matplotlib. rcParams['axes.cycle_color']。


7.6.4 补充说明
通过matplotlib.pyplot.register_cmap我们可以将一个新的颜色表注册到matplotlib,这样就可以通过get_cmap函数找到它。我们可以通过两种不同的方式使用它,这两种签名形式如下。
¡register_cmap(name='swirly', cmap=swirly_cmap)
¡register_cmap(name='choppy', data=choppydata, lut=128)


第一种签名指定一个颜色表作为colors.Colormap的实例,并通过name参数注册。参数name可以忽略,在这种情况下,它将继承cmap实例提供的name属性。对于第二种签名,我们向线性分隔的颜色表构造函数传入3个参数,随后把该颜色表注册到matplotlib。我们可以通过把
name参数传入matplotlib.pyplot.get_cmap函数来得到相应的colors.Colormap实例。


下面的代码展示了如何使用matplotlib.colors.LinearSegmented Colormap创建你自己的颜色表:
from pylab import *
cdict = {'red': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.7),
(1.0, 1.0, 1.0)),
'green': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.0),
(1.0, 1.0, 1.0)),
'blue': ((0.0, 0.0, 0.0),
(0.5, 1.0, 0.0),
(1.0, 0.5, 1.0))}
my_cmap = matplotlib.colors.LinearSegmentedColormap('my_
colormap',cdict,256)
pcolor(rand(10,10),cmap=my_cmap)
colorbar()


执行该方法很简单,实际上比较难的部分是如何给出信息丰富的颜色组合。这种颜色组合不会丢掉任何可视化的数据信息,同时读者看起来赏心悦目。对于基本的颜色列表(在之前的表中列出的颜色表),可以用pylab快捷方式来设置颜色表。例如:
imshow(X)
hot()
这将设置图X的颜色表为cmap = 'hot'。


原文网址:      https://www.epubit.com/book/detail/21642
内容来源:异步社区;版权属【人民邮电出版社 异步社区】所有,转载已获得授权;未经授权,不得以任何方式复制和传播本书内容,如需转载请联系异步社区。