# ccd3
**Repository Path**: youngcherish/ccd3
## Basic Information
- **Project Name**: ccd3
- **Description**: CCd3.js 开箱即用的d3图表库
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 2
- **Forks**: 0
- **Created**: 2020-09-20
- **Last Updated**: 2021-01-22
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 1. CCd3 文档
- [1. CCd3 文档](#1-ccd3-文档)
- [1.1. 使用教程](#11-使用教程)
- [1.1.1. 数据格式](#111-数据格式)
- [1.1.2. 代码](#112-代码)
- [1.1.3. 安装](#113-安装)
- [1.1.4. API说明](#114-api说明)
- [1.1.4.1. **new BarChart(id,data)**](#1141-new-barchartiddata)
- [1.1.4.2. **init()**](#1142-init)
- [1.1.4.3. **render()**](#1143-render)
- [1.2. API](#12-api)
- [1.2.1. CCd3](#121-ccd3)
- [1.2.1.1. CCd3.setMargin(top,right,bottom,left)](#1211-ccd3setmargintoprightbottomleft)
- [1.2.1.2. CCd3.setHeight(height)](#1212-ccd3setheightheight)
- [1.2.1.3. CCd3.setWidth(width)](#1213-ccd3setwidthwidth)
- [1.2.1.4. CCd3.setMaxHeight(mh)](#1214-ccd3setmaxheightmh)
- [1.2.1.5. CCd3.setMaxWidth(mw)](#1215-ccd3setmaxwidthmw)
- [1.2.1.6. CCd3.setBackgroundColor(bc)](#1216-ccd3setbackgroundcolorbc)
- [1.2.1.7. 力导向图set自定义](#1217-力导向图set自定义)
- [1.2.1.7.1 CCd3.setSizeKey(key)](#12171-ccd3setsizekeykey)
- [1.2.1.7.2 CCd3.setColorKey(key)](#12172-ccd3setcolorkeykey)
- [1.2.1.7.3 CCd3.setNameKey(key)](#12173-ccd3setnamekeykey)
- [1.2.1.7.4 CCd3.setTextColor(color)](#12174-ccd3settextcolorcolor)
- [1.2.1.7.5 CCd3.setLineColor(color)](#12175-ccd3setlinecolorcolor)
- [1.2.1.7.6 CCd3.setLinksMarker](#12176-ccd3setlinksmarker)
- [1.2.1.7.7 CCd3](#12177-ccd3)
## 1.1. 使用教程
这里介绍 BarChart
### 1.1.1. 数据格式
> yourData.csv
```csv
index,dip,visited_times
0,10.50.50.26,19211
1,10.50.50.28,11161
2,10.50.50.29,11046
3,10.50.50.37,1906
4,10.7.133.16,1717
```
### 1.1.2. 代码
```js
import { BarChart } from '../dist/CCd3.js'
d3.csv('./data/yourData.csv').then(data => {
new BarChart('barChart', data)
.setTargetX('dip')
.setTargetY('visited_times')
.init()
.render();
})
```
### 1.1.3. 安装
本仓库用于内部教学使用,未使用webpack等打包工具。
> 如需打包压缩,请自行操作。
> CCd3依赖于D3.js v6版本
```js
```
### 1.1.4. API说明
#### 1.1.4.1. **new BarChart(id,data)**
每一个图表均对应一个class,可以通过new关键字创建一个图表对象,从而实现图表的高效复用。
该class有2个必须传入的参数:
- id :存放图表的容器Id。
- data : 图表需要的数据。
**注意:**
- 图表的默认宽高取决于容器。
- 图表需要的数据的格式是固定的,每一份图表均有一份固定的数据格式。
#### 1.1.4.2. **init()**
每一份图表均需要通过 `.init()`方法来初始化图表的基本属性。
**注意:**
可以在`.init()`调用之前,使用`set`方法来重设图表的基本属性。
#### 1.1.4.3. **render()**
每一份图表均需要通过 `.render()`方法来呈现图表元素。
**注意:**
CCd3基于d3.js(数据驱动文档),因此当数据发生改变后,可以直接再次调用render()方法来实现视图的动态更新。
## 1.2. API
### 1.2.1. CCd3
CCd3是所有的图表基类,抽象出了所有图表的共同点。
CCd3将一个视图的构建分为两个部分。
1. 视图的容器初始化,即`init()`。负责确定图表的svg元素宽高、最大宽高、编辑、背景色以及`viewBox`属性。
2. 视图的主题内容渲染,即`render()`
> 请注意:所有的set应该在调用init()方法之前使用。
#### 1.2.1.1. CCd3.setMargin(top,right,bottom,left)
设置视图的margin,默认为:
`this.margin = { top: 0, right: 0, bottom: 0, left: 0 };`
就像这样使用:
```js
import { BarChart } from '../dist/CCd3.js'
d3.csv('./data/yourData.csv').then(data => {
new BarChart('barChart', data)
.setMargin(50,50,50,100)
.setTargetX('dip')
.setTargetY('visited_times')
.init()
.render();
})
```
#### 1.2.1.2. CCd3.setHeight(height)
> 我们使用svg的父元素的高度作为视图的默认高度。
设置视图的高度,默认为:
`容器的高度`
就像这样使用:
```js
import { BarChart } from '../dist/CCd3.js'
d3.csv('./data/yourData.csv').then(data => {
new BarChart('barChart', data)
.setTargetX('dip')
.setTargetY('visited_times')
.init()
.render();
})
```
#### 1.2.1.3. CCd3.setWidth(width)
> 我们使用svg的父元素的高度作为视图的默认宽度。
设置视图的宽度,默认为:
`容器的宽度`
#### 1.2.1.4. CCd3.setMaxHeight(mh)
设置视图的最大高度,默认为:
`max-height:100%`
#### 1.2.1.5. CCd3.setMaxWidth(mw)
设置视图的最大宽度,默认为:
`max-width:100%`
#### 1.2.1.6. CCd3.setBackgroundColor(bc)
设置视图的背景颜色,默认为:
`background-color:#eee`
#### 1.2.1.7. 力导向图set自定义
力导向图所需要的数据格式为:
```json
"nodes": [{
"name": "Myriel",
"group": 1,
"size": 96
},{
"name": "Napoleon",
"group": 1,
"size": 37
}],
"links": [{
"source": "Napoleon",
"target": "Myriel",
"value": 1
}, {
"source": "Mlle.Baptistine",
"target": "Myriel",
"value": 8
}]
```
##### 1.2.1.7.1 CCd3.setSizeKey(key)
设置力导向图的结点属性,默认为:
`.setSizeKey('size')`
##### 1.2.1.7.2 CCd3.setColorKey(key)
设置力导向图的颜色表示属性,默认为:
`.setColorKey('group')`
##### 1.2.1.7.3 CCd3.setNameKey(key)
设置力导向图结点表示属性,默认为:
`.setNameKey('name')`
##### 1.2.1.7.4 CCd3.setTextColor(color)
设置文字显示为哪种颜色,默认为:
`.setTextColor('#212121')`
##### 1.2.1.7.5 CCd3.setLineColor(color)
设置连线颜色显示为哪种颜色,默认为:
`.setLineColor("rgb(50,50,50)")`
##### 1.2.1.7.6 CCd3.setLinksMarker
设置是否显连线上面的箭头, 默认为true:
`.setLinksMarker(true)`
##### 1.2.1.7.7 CCd3