D3js

前端可视化领域当之无愧的 No.1,提供的 API 相对基础,相对灵活度最好,适合完成定制化有较高要求的图形。

网上的参考资料很多,摘录两个:

封装 D3js,以提供更易用的 API 的库也很多:

期中 Recharts 是基于 React 的组合式图表,有官方中文文档
设计比较简约,可满足一般数据可视化需要。

Chart.js

官方介绍:

为设计和开发人员准备的简单、灵活的 JavaScript 图表工具

相比其他可视化库,其使用可能最为简单、轻量。目前中文文档翻译完成度较低。

Echarts

基于 React 封装库有 echarts-for-react,其只是体统了一个简单的封装组件,使用中仍按照 Echarts 的 API 来完成数据可视化。

基于 Vue2.x 封装的有 v-charts,其封装度更高。

AntV

蚂蚁金服开源的数据可视化解决方案,包含:

  • G2: 一般的数据可视化
  • G6: 关系数据可视化
  • F2: 专注移动端的数据可视化解决方案

一般我们用到最多的是 AntV/G2,相比 Echarts 算是后起之秀,官方介绍为:

G2 是一套基于可视化编码的图形语法,以数据驱动,具有高度的易用性和扩展性,用户无需关注各种繁琐的实现细节,一条语句即可构建出各种各样的可交互的统计图表。

与 Echarts 相比,因为其封装了一些细节,使用上可能相对简单,但是没有 Echarts 那么高的可定制度,相对图形做细微定制化调整,按照官方的 API 可能让人摸不着头脑。而自 Echarts V4 版本,也加入了 数据集(dataset) 等功能,减少了代码繁琐度,相比来说可能 Echarts 更好用一些。就系统化解决方案来说,因 AntV 包含各端以及覆盖 ReactVueAngular 的官方封装,会更胜一筹。就主题配色来啊,个人感觉 AntV 提供的默认主题更好看一点,若你是颜控,不妨试试 AntV/G2

G2G6 有基于其的 React 封装库:

  • BizCharts: 一个基于 G2 封装的 React 图表库,具有 G2、React 的全部优点,可以让用户以组件的形式组合出无数种图表;并且集成了大量的统计工具,支持多种坐标系绘制,交互定制,动画定制以及图形定制等等。
  • BizGoblin: 一个基于 F2 封装的 React 图表库,具有 F2、React 的全部优点,可以让用户以组件的形式组合出无数种移动端图表。

不过如果不研究 G2 文档,直接上手 BizCharts 是个大坑……

Highcharts

另一个比较流行的数据可视化框架,有中文文档,网上和 Echarts 对比的文章较多,可自行查阅。有些方面比 Echarts 更强大易用。不过其商用授权费用大部分国内公司会望而却步,单个开发者授权为 7900元

若想启用 Prettier 格式化代码,需要自行安装 Prettier

1
yarn add --dev prettier

这样编辑器会自动选择 Prettier 路径,完成配置。格式化快捷键 Ctrl+Shift+Alt+P

注意,使用 Prettier 格式化代码与内置的格式化引擎(快捷键为 Ctrl+Shift+L)存在差异,而且 WebStorm 编辑器无法像 VSCode 那样在不同的语言环境下选择格式化引擎,即无法达到在编辑 JavaScript 代码时按 Ctrl+Shift+L 使用的是 Prettier 来个格式化代码的效果。

此时若手误按 Ctrl+Shift+L 快捷键,格式化的代码和原来的不符,给 Git 版本控制带来麻烦。

为解决上述问题,我们通过 WebStorm 提供的 Watch Filers 来迂回解决,具体操作为:打开 Setting,选择 Tools>File Watchers,点击 +,选择 Prettier,用默认设置点及 Ok 保存即可。

这样,我们在保存代码是时候,能自动使用 Prettier 来格式化代码,不用再考虑快捷键格式化代码的问题。

tsconfig.json 配置

下面对 tsconfig.json 配置文件中常用配置做相关说明

若想使用下面语法导入 React

1
import React, { Component } from 'react';

而不是使用

1
import * as React from 'react';

需要在 tsconfig.json 配置文件中添加:

1
2
3
4
5
{
"compilerOptions": {
"allowSyntheticDefaultImports": true
}
}

tslint.json 配置

允许成员函数不加 public 说明:

1
2
3
4
5
{
"rules": {
"member-access": [true, "no-public"] // Or false. Read the rule and see what you want.
}
}

字段操作

1
2
3
4
5
6
7
{
teacher_id: '0001',
tel: '12345678901',
details: {
subject: 'English'
}
}

字段重命名

1
2
3
4
5
6
db.teachers.update(
{},
{ $rename: { 'teacher_id': 'teacherId', 'details.subject': 'details.course' } },
false,
true,
);

字段删除

1
db.teachers.update({}, { $unset: { mobile: 1 } }, false, true);
1
db.teachers.update({}, { $unset: { 'details.subject': 1 } }, false, true);

复杂的操作

1
2
3
4
5
6
7
8
9
10
11
12
{
key: [
{
id: 1,
subkey: value1,
},
{
id: 2,
subkey: value2,
},
];
}

若你只想删除 id 为 1 的的 subkey, 你可以使用如下命令:

1
2
3
4
5
6
db.example.update(
{ 'key.id': 1 },
{ $unset: { 'key.$.subkey': 1 } },
false,
true,
);

Python 有非常丰富的第三方库可以使用,很多开发者会向 pypi 上提交自己的 Python 包。要想向 pypi 包仓库提交自己开发的包,首先要将自己的代码打包,才能上传分发。Python 打包一般用到的库是 setuptools,下面我们重点来介绍 setuptools 的配置和使用。

安装

1
pip install setuptools

setup.py 文件

Python 库打包分发的关键在于编写 setup.py 文件。setup.py 文件编写的规则是从 setuptools 模块导入 setup 函数,并传入各类参数进行调用。

1
2
3
4
5
6
7
8
9
10
11
12
13
# coding:utf-8

from setuptools import setup

setup(
name='demo', # 包名字
version='1.0', # 包版本
description='This is a test of the setup', # 简单描述
author='huoty', # 作者
author_email='sudohuoty@163.com', # 作者邮箱
url='https://www.konghy.com', # 包的主页
packages=['demo'], # 包
)

参数概述

setup() 函数参数中,一部分是用来描述包的元信息;一部分用来定义了包运行的设置信息:

阅读全文 »

命令行应用帮助

1
2
3
4
5
# @click.command(help="此命令帮助")
@click.command()
def cli():
"""此命令 docstring """
pass

如果你的 click.command() 没有定义 help 参数,则程序会用函数体的 docstring 内容代替。

阅读全文 »

介绍

要用 setuptools 打包你的 script,您只需要这个 Python 包的脚本文件和 setup.py 文件。 想象一下这个目录结构:

yourscript.py
setup.py

你的脚本文件 yourscript.py 内容:

1
2
3
4
5
6
import click

@click.command()
def cli():
"""Example script."""
click.echo('Hello World!')

setup.py 文件内容:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
from setuptools import setup

setup(
name='yourscript',
version='0.1',
py_modules=['yourscript'],
install_requires=[
'Click',
],
entry_points='''
[console_scripts]
yourscript=yourscript:cli
''',
)

重点在 entry_points 参数中。在 console_scripts 下面,每行标识一个控制台脚本。 等号(=)左边是应该生成的命令行应用的名称,等号右边是导入路径,后跟冒号(:) 和 click 命令函数。

就这样!

阅读全文 »

简介

Click 是 Python 的一个第三方库,它只需要很少的代码就能以可组合的方式创建漂亮的命令行工具。 这是 “命令行界面创建工具库”。 它具有高度可配置性,但具有开箱即用的合理默认值。

  • 命令的任意嵌套
  • 自动生成帮助信息
  • 支持在运行时子命令的延迟加载

安装

1
pip install click
阅读全文 »
0%