• Stars
    star
    223
  • Rank 178,458 (Top 4 %)
  • Language
    JavaScript
  • Created over 9 years ago
  • Updated 11 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

Data Visualization Solutions

chartx2.0 代码规范

  • 配置使用规范约定

    首先,chartx2.0 和之前的版本使用方式保持一致,需要有 dom 节点, data数据,和配置。

    不同的是2.0中数据支持行列式的数据格式

    var data = [
        [ "xfield", "uv", "pv" ],
        [ 1       ,  2  ,  3   ],
        [ 2       ,  3  ,  4   ]
    ]

    同时也支持json格式列表

    var data = [
       { xfield: 1, uv:2, pv:3  },
       { xfield: 1, uv:2, pv:3  },
       { xfield: 1, uv:2, pv:3  }
    ]

    chartx会主动识别并且处理,只要符合其中一种数据格式,你就只管塞就好了。

    然后,chartx2.0中 所有的图标类型都会提供一份根据数据来得默认配置,也就是说,你可以只要有数据,不用些任何配置,就可以创建一个图表:

    Chartx.Line( "dom" , data, {} ) 
    //最后面的那个配置可以不要,Chartx.Line( "dom" , data )
    //那么比如在直角坐标系中,我们会默认拿第一个字段xfield作为xAxis.field, 其他字段都作为yAxis.field

    chartx2.0 相比1.xxx 更加纯粹的采用了组件式配置的原则,比如一个直角坐标系的折线图line,它的配置会是这样

    //其中除开coordinate 和 graphs 默认会有以外,其他的所有 组件 都是组装式的,在options 里面组装了这个组件,才会有对应的功能,2.0里面包括tips也不再默认放出( 这么多年的经验得出,默认的tips基本没有可看性,项目里面基本会对tips.content重构 )
    var options = {
        coordinate : {
            xAxis : {},
            yAxis : {}
        },
        graphs : {
    
        },
        legend : {
    
        },
        markLine : {
    
        },
        markPoint : {
    
        },
        dataZoom: {
    
        },
        tips : {
    
        }
    }
    • 图表类视图规划

      2.0中,把图表区 按照坐标系类别分类,而不在是单独个图表类型,各自写各自的逻辑代码

      • Chart
        • Descartes(笛卡尔坐标系)
          • bar
          • line
          • bar_line
          • bar_tgi
          • scat
        • Polar(极坐标系)
          • Pie
          • Dingle(丁格尔玫瑰图)
          • Planet (星云图)
        • Other
    • 接口约定规范

    ** chart 图表基类

    1,这次添加了组件管理机制 components

    2,然后,对于reset 和 resetData两个接口,这次做了绝对清晰的划分,也就是reset 实质上和重新绘制是一回事,而resetData却仅仅是数据的变化,然后调用各个组价的resetData 来实现整体数据的更新( 之前版本里做的太复杂,reset会去计算用户reset的意图,比如reset里少了个yAxis的字段,那么就会自动remove掉一条线,这是个大坑,而且性价比非常低,但是代码量和可维护性非常低 )

    ** descartes 笛卡尔系统类( bar,line,scat 等都继承自该类 )

    简单代码约定规范

    _coordinate 为实例 coordinate 为配置

    交互事件的规范 1.xx 版本中,所有的事件都是在 chart.on("nodeclick") 等这样的层面实现的

    2.0中,所有的事件都写入到配置中去

    比如在scat中得节点点击事件

 graphs : [
       {
           type : "scat",
           field : "money",
           groupField : "sex",
           node : {
               r : "house", 

               //事件直接注册到对于的配置中来,这样,减少了命名的麻烦,统一的命名,而且直观, 
               //一眼就知道在那些元素上面注册了事件
               onclick : function( nodeData, Graphs ){
                   debugger
               }
           }
       }
   ]

file:../canvax

直角坐标系的两类轴(xAxis,yAxis),和极坐标系的两类轴(aAxis,rAxis ), 都至少有field和ruler ruler用来表示刻度ui,axis上面别的所有的属性都是逻辑属性,ruler用来控制是否有ui。

graphs 约定 所有得graphs中把所有的ui设置都归为了4个属性(这么多年的经验来看, 基本能满足目前为止的所有需求) node --》 (对应一个数据节点,而不是ui元素) line --》(多个数据节点的链接,在雷达图和line折线图中表现为用折线绘制连接) area --》(同样地,表示多个数据节点的链接,然后有一个闭环,出现了一个面) text --》 文本

所有组件对外影响的时候都会抛出一个 trigger对象 trigger对象包括comp(触发的组件)和params两个属性

nodeData, nodeElement , data和图形之间互相引用的属性约定

颜色取值规则,只有undefined才会认为需要还原皮肤色 “” 或者 null 都会认为是用户主动想要设置的,就为是用户不想他显示

启动文档服务

docsify serve docs

More Repositories

1

RAP

Web接口管理工具,开源免费,接口自动化,MOCK数据自动生成,自动化测试,企业级管理。阿里妈妈MUX团队出品!阿里巴巴都在用!1000+公司的选择!RAP2已发布请移步至https://github.com/thx/rap2-delos
JavaScript
10,573
star
2

rap2-delos

阿里妈妈前端团队出品的开源接口管理工具RAP第二代
TypeScript
7,620
star
3

gogocode

GoGoCode is a transformer for JavaScript/Typescript/HTML based on AST but providing a more intuitive API.
JavaScript
5,408
star
4

rap2-dolores

TypeScript
609
star
5

iconfont-plus

新版iconfont仓库,代码暂时不具备开源的条件。主要作为issues的仓库,不排除以后直接把代码在此开源。
466
star
6

cube

跨终端、响应式、低设计耦合的CSS解决方案
SCSS
422
star
7

magix

Magix is designed to construct large scaled,complex interactions app.
JavaScript
420
star
8

magix-combine

按占位符规则把html、css文件打包进js文件
JavaScript
152
star
9

magix-inspector

magix项目调试分析工具
JavaScript
135
star
10

magix-project

magix示例项目
JavaScript
126
star
11

magix-loader

webpack loader
JavaScript
121
star
12

magix-gallery

magix gallery
HTML
107
star
13

magix-os

基于Magix开发的web桌面系统
JavaScript
103
star
14

thx.github.io

The Gateway
HTML
99
star
15

rapper

一个自带类型的请求库
TypeScript
96
star
16

bisheng

BI-Directional / Two-Way Data-Binding Library
JavaScript
67
star
17

canvax

canvas library
JavaScript
48
star
18

image_grabber

Image Grabber
JavaScript
45
star
19

brix-bisheng

纯粹的数据双向绑定库。
JavaScript
42
star
20

vscode-magix

vscode 上的 Magix 开发插件,提升你的开发体验!
TypeScript
42
star
21

html-code-guide

HTML Code Guide
35
star
22

brix-core

Brix Core
JavaScript
25
star
23

crox

JavaScript
22
star
24

brix-loader

Brix 组件加载器
JavaScript
19
star
25

thx-portal-rule

可视化规则编辑器
TypeScript
15
star
26

kslite

一个小巧精致的加载器
JavaScript
11
star
27

brix-components

Brix 组件仓库
JavaScript
9
star
28

FE-tools

项目辅助chrome插件
JavaScript
9
star
29

vscode-gogocode

use code to refactor your code easily
TypeScript
8
star
30

magix-demo-ad

广告系统DEMO
JavaScript
7
star
31

thx-cli

THX CLI
TypeScript
6
star
32

magix-cli-book

magix-cli gitbook文档
6
star
33

brix-animation

brix声明式动画
JavaScript
6
star
34

magix-bp

Tutorial application of Magix
JavaScript
5
star
35

RAP.node

RAP node server
JavaScript
5
star
36

gogocode-starter

gogocode starter
JavaScript
4
star
37

brix-spec

CSS
4
star
38

brix-event

支持 bx-type 风格的事件模型,实现事件与与 DOM 结构的松耦合,提升可读性、可复用性和可测试性。
JavaScript
4
star
39

magix-doc3

magix3.x doc
JavaScript
3
star
40

aliminiapp-pixiv6-demo

手淘小程序PIXIJS v6互动引擎使用样例
JavaScript
3
star
41

magix5-gallery

magix5组件库
JavaScript
2
star
42

brix-style

Brix Style - Foundation
JavaScript
2
star
43

magix-composer

compile html, style and javascript files into javascript
JavaScript
2
star
44

gitbook-to-gh-pages

本地gitbook同步发布到github pages工具
JavaScript
2
star
45

base

Base of THX websites
CSS
2
star
46

magix-api

magix api
CSS
1
star
47

animore

JavaScript
1
star
48

magix-hmr

magix hot module replacement
JavaScript
1
star
49

thx-scripts

微前端构建工具,内置支持 Webpack5 模块邦联(Module Federation)。
TypeScript
1
star
50

magix-demo-ppt

2012.12月1.0刚完成时的总结,不适用于cdn上的1.0
1
star
51

brix-site

已废弃,请访问
HTML
1
star
52

auto-open-chrome

auto open chrome
AppleScript
1
star