npm 包 colorbrewer 使用教程

在前端开发中,经常需要使用到颜色相关的功能。而为了方便开发者使用,npm 社区提供了许多优秀的颜色处理包,其中 colorbrewer 就是一款优秀的色彩方案生成工具。该 npm 包提供了多种预定义的配色方案,方便开发者快速地构建色彩设计。

本篇文章我们将详细介绍 npm 包 colorbrewer 的使用方法,包括其安装、引入、调用等内容,并且将深入探讨其源码实现和使用场景。同时,本文还将通过示例代码为读者提供指导意义,以便帮助大家更好地理解和运用 colorbrewer。

安装和引入

要使用 colorbrewer,首先需要在本地安装 this package:

--- ------- -----------

npm 会将用客户端 JavaScript 运行的所有程序包下载到node_modules文件夹中,之后就可以使用requireimport的方式引入:

-- --------
----- ----------- - -----------------------

-- --- ------
------ ----------- ---- --------------

在引入 colorbrewer 后,它将作为一个对象储存在变量 colorBrewer 中,我们也可以将其命名为自己喜欢的变量名。

使用

下面我们将演示如何使用 colorbrewer 生成颜色方案:

----- ------ - -----------------------
--------------------  -- ----------- ---------- ---------- ---------- ---------- ---------- ----------

上述代码中,我们使用了 colorBrewer 对象提供的一个名为“PuBu”的预定义颜色方案,并使用方案中的第七种颜色组作为演示。colors 变量存储了该方案的颜色值数组。所以打印 colors 就可以看到七种颜色的十六进制值。

预定义颜色方案

colorbrewer 插件提供的预定义配色方案以对象的方式存放在 colorBrewer 对象中。这些配色方案按主色调分类,比如“YlOrRd”为黄色橙色红色。每个主色调为对象属性,其值是包含更多不同颜色数量的具体颜色集。

这里提供一份常用的预定义配色方案集:

方案名 颜色数量 主色调 类型
PuOr 11 橙紫 顺序,2-11 色
BrBG 11 棕蓝 顺序,2-11 色
PRGn 11 紫绿 顺序,2-11 色
PiYG 11 紫绿 顺序,2-11 色
RdBu 11 红蓝 顺序,2-11 色
RdGy 11 红灰 顺序,2-11 色
RdYlBu 11 红黄蓝 顺序,2-11 色
Spectral 11 彩虹 顺序,2-11 色
RdYlGn 11 红黄绿 对称,2-11 色
Accent 8 - 定性,1-8 色
Dark2 8 - 定性,1-8 色
Paired 12 - 定性,1-12 色
Pastel1 9 - 定性,1-9 色
Pastel2 8 - 定性,1-8 色
Set1 9 - 定性,1-9 色
Set2 8 - 定性,1-8 色
Set3 12 - 定性,1-12 色
Blues 9 蓝绿 顺序,3-9 色
Greens 9 绿色 顺序,3-9 色
Greys 9 灰色 顺序,3-9 色
Oranges 9 橙色 顺序,3-9 色
Purples 9 紫色 顺序,3-9 色
Reds 9 红色 顺序,3-9 色
BuGn 9 蓝绿 顺序,3-9 色
BuPu 9 蓝紫 顺序,3-9 色
GnBu 9 绿蓝 顺序,3-9 色
OrRd 9 橙红 顺序,3-9 色
PuBuGn 9 紫绿蓝 顺序,3-9 色
PuBu 9 紫蓝 顺序,3-9 色
PuRd 9 紫红 顺序,3-9 色
RdPu 9 红紫 顺序,3-9 色
YlGnBu 9 黄绿蓝 顺序,3-9 色
YlGn 9 黄绿色 顺序,3-9 色
YlOrBr 9 黄橘 顺序,3-9 色
YlOrRd 9 黄红 顺序,3-9 色

上表中的每种颜色方案都是基于最初的 R 软件中的调色板配色方案设计的,这些方案可以帮助开发者轻松构建高质量的图表和数据可视化。

插值函数

除了预定义方案之外,colorbrewer 还提供了多个自定义的回调函数来生成动态颜色方案。这些自定义方案函数被当做参数传递给brewer函数(brewer 函数是固定的,返回内部的一个颜色生成函数)中,以实现对自定义方案的使用。

下面演示了如何生成两种不同的插值函数:

----- ------------- - -----------------------------
----- ------------- - -------------------------------

上述代码中,我们使用 colorBrewer 对象提供的两个插值方案(OrRd 和 RdYlBu),并分别存储在 interpolator1 和 interpolator2 变量中。

源码实现

如果你对如何生成预定义颜色方案或如何创建自定义配色方案的解释感到好奇,那么可以探索一下 colorbrewer npm 包的源码实现。

colorbrewer 的主要类别和包含的颜色数量存储在index.js文件中,可以按照如下方式进行解释:

--- ----------- - -------------------------
--- ---- - -------------
--- ------ - --------
--- - - --

-------------- - ----------------- -
  ------- - ------- -- ---
  ---- - ------------ -- -----
  ------ - -------------- -- -------
  - - --------- -- --

  ------ ------------------------------------- ----------- -----
--

这段代码中,导入了colorbrewer对象,该对象包含了预定义颜色方案的定义。然后定义了三个变量,分别确定了类型(顺序型、定性型、发散型)、配色方案和颜色数量。默认值分别设置为 "sequential"、"Blues"、6。最后导出了一个函数,该函数返回使用类型、方案和颜色数量生成的数组。

预定义颜色方案的列表在colorbrewer.js中,其中使用了一些常量,例如以下示例代码中常量的使用:

-------------- - -
  ----------- -
    ------ -
      -- ----------- ---------- -----------
      -- ----------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
    --
    ------- -
      -- ----------- ---------- -----------
      -- ----------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
    --
    ------ -
      -- ----------- ---------- -----------
      -- ----------- ---------- ---------- -----------
      -- ----------- ---------- ---------- ---------- -----------

每个主色调又包含一个由颜色列表组成的对象,其中键名是包含颜色的数字,以示例代码在括号中所示。你可以使用键名从该对象中获取颜色数组。

在本文中,使用了 colorbrewer 库的序数配色方案和配色方案中的必要颜色示例。

-- ----- - ----------- ---------- ------ --- ------- ----- -----
--- ------ - -------
--- ------ - -----------------------

为了实现自定义颜色插值方案,colorbrewer 也包含一个内部文件 interpolate.js。该文件导出了许多可以接收范围[0,1]的插值器函数,这些函数可以按照一个颜色数组返回插值过的颜色值。在内部,这些插值器广泛使用了 d3-interpolate 库的颜色插值函数,具体操作步骤需要在调用旋钮函数时传递颜色数组。

--- ----------- - --------------------------
--- ------ - -------------------------------------
--- --------- - ----------- -- -
  ------ --------- -- - --
--
--- ------ - -------------------------------------

-------- -------------- -
  --- - - --------------
  ------ ----------- -
    - - ----------- ----------- --- - -- - ---
    --- - - - - --
    ------ -------------------- -------- - ----
  --
-

------------------ - ---------------------------
------------ - -------

--
 - ------- - ----------- ----------- ------ -- ------ --
 --
------ -------- ----------------- -- -
  ------ -----------------------------
-

-------- ---------------------- -
  --- - - ------------------
      ---- - --------------------- - ----------
      ---- - -- -- ----- - --
      ----- - ---

  ------------------------------------- -- -
    --------------- - --
  ---

  -------- ----------- -
    ------ --------------- - -- - - - ----
  -

  --------------- - ----------- -
    -- ------------------- ------ -------------------
    ---------- - ---
    ----- - ---
    --- ---- - - -- - - --------- ---- -
      --- -------- - -----
      -- ----------- -- ------- -
        --------------------------
        --------------- - --
      -
    -
    - - ------------------
    ---- - -- -- --------------------- - ---------- - --
    ------ ---------
  --

  ------ ---------
-

------ ------------ -- ----- ----------- --------
------ ------- -------

应用场景

colorbrewer 库广泛应用于数据可视化和地图相关的项目中。数据可视化项目需要使用高质量的配色方案,以传达重要的信息并与大众建立联系。而 colorbrewer 提供了种类丰富的色彩方案,开发者可以在其中选择最佳的配色方案,以优化其可视化方案。因此,colorbrewer 现已成为数据可视化和地图等领域不可或缺的一部分。

地图着色

在地图上,可以使用这个库生成一系列不同分类的着色方案,以帮助更好地显示与特定主题相关的信息。

图 1. 地图上使用 colorbrewer 实现不同的着色方案

数据可视化

在数据可视化中,可以使用 colorbrewer 为条形图、散点图、直方图、饼图等图表类型生成配色方案。

图 2. 数据可视化中的 colorbrewer 配色方案

总结

colorbrewer 是一个实用的 npm 包,旨在为开发者提供一系列优秀的颜色配色方案,方便开发者快速构建高质量的可视化项目。本文为读者介

来源:JavaScript中文网 ,转载请联系管理员! 本文地址:https://www.javascriptcn.com/post/5eedc286b5cbfe1ea0612095


猜你喜欢

  • npm 包 cify 使用教程

    随着前端开发的不断发展,我们经常需要进行一些代码的压缩和混淆。而在这个过程中,npm 包 cify 就是一个非常优秀的工具。它可以帮助我们将 JavaScript 代码压缩和混淆,从而达到代码安全和性...

    4 年前
  • npm 包 @types/copyfiles 使用教程

    在前端项目中,我们经常需要进行文件复制的操作。这时候,一个好的 npm 包就能大大简化我们的工作,提高效率。今天,我要推荐一个非常实用的 npm 包:@types/copyfiles。

    4 年前
  • npm包vmodule-webpack-plugin使用教程

    前言 在前端开发中,我们经常需要将多个模块(module)打包成一个文件(bundle),以便在页面中引入。但是,有时我们希望某些模块只在特定条件下才被打包,同时有些模块可能被其它模块共享,这时候就需...

    4 年前
  • npm 包 tslint-config-dawn 使用教程

    前言 在前端开发过程中,我们经常使用 TypeScript 来进行开发,而为了保证代码的一致性和规范性,我们需要使用代码检查工具,其中 tslint 是一个很好的选择。

    4 年前
  • npm 包 bufstream 使用教程

    在前端开发中,我们常常需要处理二进制数据流。但是,JavaScript 自身并没有提供很好的处理二进制数据流的能力。这时,npm 提供了一个很好的解决方案 —— bufstream 包。

    4 年前
  • npm 包 nb64 使用教程

    什么是 nb64? nb64 是一个基于 JavaScript 的 npm 包,它提供了简单方便的 Base64 编码解码功能。 Base64 是一种将二进制数据编码成 ASCII 字符串的编码方式,...

    4 年前
  • npm 包 eslint-config-integromat 使用教程

    前言 在前端开发中,为了保证代码风格统一,代码质量高,我们通常会使用 eslint 对代码进行检查。但是 eslint 的配置可以说是非常繁琐,而且不同的项目或团队又有不同的规范和要求,导致每个人要花...

    4 年前
  • NPM 包 STP 使用教程

    在前端开发中,很多时候我们需要对字符串或数字进行格式化和转换,而 npm 生态圈中有很多工具包可以帮助我们轻松地完成这些任务。其中一个常用的工具包就是 STP,这个包可以帮助我们快速地进行数字的格式化...

    4 年前
  • npm 包 eify 使用教程

    什么是 eify? eify 是一个 npm 包,它可以将 CommonJS 的 require 语句自动转换成 ES6 的 import 语句。 在前端开发中,我们通常会使用一些 npm 包来引入一...

    4 年前
  • npm包ober使用教程

    npm包ober是一款强大的前端UI库,其中包含各种UI组件和工具,是你开发前端应用不可或缺的利器。在本篇教程中,我们将深入讲解如何使用npm包ober。 安装 要使用npm包ober,首先要在你的项...

    4 年前
  • npm 包 dn-middleware-browser-sync 使用教程

    在前端开发过程中,我们常常需要在多个设备或浏览器中进行调试和测试。BrowserSync 是一个非常好用的工具,它可以通过自动刷新页面、同步滚动和表单输入等方式让开发者更加高效舒适地进行页面调试。

    4 年前
  • npm 包 dn-middleware-submitter 使用教程

    简介 dn-middleware-submitter 是一个基于 Node.js 平台开发的中间件 npm 包,它可以帮助前端开发人员快速地将表单提交到后端。本文将介绍此包的使用教程。

    4 年前
  • npm包 dn-middleware-typescript 使用教程

    简介 dn-middleware-typescript是一款基于TypeScript编写的npm包,可将TypeScript代码转化为JavaScript代码,并且允许使用各种TypeScript特性...

    4 年前
  • npm 包 mota 使用教程

    在前端开发中,npm 是一个重要的包管理工具。这个工具可以让我们方便地安装、升级和管理各种前端库和工具,在搭建前端工程、开发、部署的过程中都非常重要。npm 官方上有海量的 npm 包,其中就有一个叫...

    4 年前
  • npm 包 dn-middleware-call 使用教程

    在前端开发过程中,我们经常需要使用一些中间件来进行接口调用和数据传输。dn-middleware-call 是一个非常实用的 npm 包, 它提供了一种简单、快速、可靠的方法来管理你的接口调用。

    4 年前
  • npm 包 dn-middleware-server 使用教程

    前言 在开发 Web 应用程序时,我们通常需要利用服务器作为中间件来从客户端获取一些数据,例如用户的登录信息、购物车、购买历史记录等。在过去,我们需要编写自己的服务器程序,但是随着 Node.js 技...

    4 年前
  • npm 包 dn-middleware-webpack 使用教程

    前言 Web 开发中,Webpack 已经成为了必不可少的构建工具。它能够将多个文件打包合并成一个文件,还可以使用各种各样的 Loader 和 Plugin 来进行代码优化、压缩等操作。

    4 年前
  • npm 包 doczilla 使用教程

    在前端开发中,我们经常需要对文档进行管理和展示。而 doczilla 是一个用于生成和展示文档的 npm 包,它可以帮助我们快速生成美观的文档网站,并提供丰富的功能和扩展性。

    4 年前
  • npm 包 dn-middleware-doc 使用教程

    概述 在前端开发中,文档的作用非常重要,帮助开发者更快、更有效地了解和使用各种组件、插件等资源。而 dn-middleware-doc 是一个开源的 npm 包,可以用来很方便地生成文档,提高开发效率...

    4 年前
  • npm包 dn-middleware-file-header的使用教程

    在前端开发中,使用npm包是非常常见的事情,以此来简化开发过程。其中,dn-middleware-file-header是一款可以自动为文件添加头信息的npm包,可以方便地管理文件信息,同时也可以帮助...

    4 年前

相关推荐

    暂无文章