mirror of https://github.com/masayuki0812/c3.git
Quite good looking graph derived from d3.js
http://c3js.org
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
385 lines
13 KiB
385 lines
13 KiB
7 years ago
|
.container.sidemenu
|
||
|
.row
|
||
|
.large-3.medium-4.columns.column-menu
|
||
|
.side-bar
|
||
|
%ul.side-nav
|
||
|
%li GETTING STARTED
|
||
|
%li
|
||
|
%a( href="#setup" ) 1. Setup
|
||
|
%li
|
||
|
%a( href="#generate" ) 2. Generate chart
|
||
|
%li
|
||
|
%a( href="#customize" ) 3. Customize chart
|
||
|
%li
|
||
|
%a( href="#api" ) 4. Use APIs
|
||
|
%li
|
||
|
%a( href="#style" ) 5. Customize style
|
||
|
%li
|
||
|
%a( href="#more" ) 6. And more..
|
||
|
|
||
|
.large-9.medium-8.columns.column-content
|
||
|
%section
|
||
|
%h2 Getting Started
|
||
|
%p In this guide, we are going to show you how to get started with C3.
|
||
|
|
||
|
%hr
|
||
|
|
||
|
%section
|
||
|
%h3
|
||
|
%a( href="#setup" ) 1. Setup
|
||
|
%p Download the latest version here:
|
||
|
%ul
|
||
|
%li <a href="https://github.com/c3js/c3/releases/latest" target="_blank">https://github.com/c3js/c3/releases/latest</a>
|
||
|
%p Installing by Bower/Component is also available with the name <span class="code">c3</span>.
|
||
|
|
||
|
%p Then, load the scripts and css:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.html.xml
|
||
|
:preserve
|
||
|
<span class="comment"><!-- Load c3.css --></span>
|
||
|
<span class="tag"><<span class="title">link</span> <span class="attribute">href</span>=<span class="value">"/path/to/c3.css"</span> <span class="attribute">rel</span>=<span class="value">"stylesheet"</span>></span>
|
||
|
|
||
|
<span class="comment"><!-- Load d3.js and c3.js --></span>
|
||
|
<span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"/path/to/d3.v3.min.js"</span> <span class="attribute">charset</span>=<span class="value">"utf-8"</span>></span><span class="tag"></<span class="title">script</span>></span>
|
||
|
<span class="tag"><<span class="title">script</span> <span class="attribute">src</span>=<span class="value">"/path/to/c3.min.js"</span>></span><span class="tag"></<span class="title">script</span>></span>
|
||
|
|
||
|
%p C3 depends on D3, so please load D3 too.
|
||
|
|
||
|
%hr
|
||
|
|
||
|
%section
|
||
|
%h3
|
||
|
%a( href="#generate" ) 2. Generate Chart
|
||
|
%p C3 generates a chart by calling <span class="code">generate()</span> with the argument object, and an element including the chart will insert into the element specified as a selector in that argument as <span class="code">bindto</span>.
|
||
|
|
||
|
%p Prepare the element to bind the chart:
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.html.xml
|
||
|
:preserve
|
||
|
<span class="tag"><<span class="title">div</span> <span class="attribute">id</span>=<span class="value">"chart"</span>></<span class="title">div</span>></span>
|
||
|
|
||
|
%p And, call <span class="code">generate()</span> with arguments:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
var chart = c3.generate({
|
||
|
bindto: '#chart',
|
||
|
data: {
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250],
|
||
|
['data2', 50, 20, 10, 40, 15, 25]
|
||
|
]
|
||
|
}
|
||
|
});
|
||
|
|
||
|
%p C3 supports the asynchronous module definition (AMD) API. If you use <a href="http://requirejs.org/" target="_blank">RequireJS</a>, you can load like this:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
require.config({
|
||
|
baseUrl: '/js',
|
||
|
paths: {
|
||
|
d3: "http://d3js.org/d3.v3.min"
|
||
|
}
|
||
|
});
|
||
|
|
||
|
require(["d3", "c3"], function(d3, c3) {
|
||
|
c3.generate({
|
||
|
...
|
||
|
});
|
||
|
});
|
||
|
|
||
|
%p Then, you will see the chart:
|
||
|
|
||
|
#chart2_1
|
||
|
%br
|
||
|
|
||
|
%p Data can be loaded as <a href="/samples/data_columned.html">columned data</a> / <a href="/samples/data_rowed.html">rowed data</a> / <a href="/samples/data_url.html">csv in URL</a>.
|
||
|
%p There are serveral options to customize the chart and you can see those here:
|
||
|
%ul
|
||
|
%li <a href="/examples.html">Examples</a>
|
||
|
|
||
|
%hr
|
||
|
|
||
|
%section
|
||
|
%h3
|
||
|
%a( href="#customize" ) 3. Customize Chart
|
||
|
%p The chart can be customize by giving some options when generating. We will introduce some of them here.
|
||
|
|
||
|
%h4 1. Additional Axis
|
||
|
%p Introduce additional axis for <span class="code">data2</span>. Add <span class="code">data.axes</span> and <span class="code">axis.y2.show</span> as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
var chart = c3.generate({
|
||
|
bindto: '#chart',
|
||
|
data: {
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250],
|
||
|
['data2', 50, 20, 10, 40, 15, 25]
|
||
|
],
|
||
|
axes: {
|
||
|
data2: 'y2' // ADD
|
||
|
}
|
||
|
},
|
||
|
axis: {
|
||
|
y2: {
|
||
|
show: true // ADD
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
%p Then, the chart will be like this:
|
||
|
|
||
|
#chart3_1
|
||
|
%br
|
||
|
|
||
|
%h4 2. Show Axis Label
|
||
|
%p Show labels for each axis. Add <span class="code">axis.y.label</span> and <span class="code">axis.y2.label</span> as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
var chart = c3.generate({
|
||
|
bindto: '#chart',
|
||
|
data: {
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250],
|
||
|
['data2', 50, 20, 10, 40, 15, 25]
|
||
|
],
|
||
|
axes: {
|
||
|
data2: 'y2'
|
||
|
}
|
||
|
},
|
||
|
axis: {
|
||
|
y: {
|
||
|
label: { // ADD
|
||
|
text: 'Y Label',
|
||
|
position: 'outer-middle'
|
||
|
}
|
||
|
},
|
||
|
y2: {
|
||
|
show: true,
|
||
|
label: { // ADD
|
||
|
text: 'Y2 Label',
|
||
|
position: 'outer-middle'
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
%p Then, the chart will be like this:
|
||
|
|
||
|
#chart3_2
|
||
|
%br
|
||
|
|
||
|
%h4 3. Change Chart Type
|
||
|
%p Show <span class="code">data2</span> as Bar chart. Add <span class="code">data.types</span> as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
var chart = c3.generate({
|
||
|
bindto: '#chart',
|
||
|
data: {
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250],
|
||
|
['data2', 50, 20, 10, 40, 15, 25]
|
||
|
],
|
||
|
axes: {
|
||
|
data2: 'y2'
|
||
|
},
|
||
|
types: {
|
||
|
data2: 'bar' // ADD
|
||
|
}
|
||
|
},
|
||
|
axis: {
|
||
|
y: {
|
||
|
label: {
|
||
|
text: 'Y Label',
|
||
|
position: 'outer-middle'
|
||
|
}
|
||
|
},
|
||
|
y2: {
|
||
|
show: true,
|
||
|
label: {
|
||
|
text: 'Y2 Label',
|
||
|
position: 'outer-middle'
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
%p Then, the chart will be like this:
|
||
|
|
||
|
#chart3_3
|
||
|
%br
|
||
|
|
||
|
%h4 4. Format values
|
||
|
%p Format the values of each data. Add <span class="code">axis.y.tick.format</span> as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
var chart = c3.generate({
|
||
|
bindto: '#chart',
|
||
|
data: {
|
||
|
columns: [
|
||
|
['data1', 30, 200, 100, 400, 150, 250],
|
||
|
['data2', 50, 20, 10, 40, 15, 25]
|
||
|
],
|
||
|
axes: {
|
||
|
data2: 'y2'
|
||
|
},
|
||
|
types: {
|
||
|
data2: 'bar'
|
||
|
}
|
||
|
},
|
||
|
axis: {
|
||
|
y: {
|
||
|
label: {
|
||
|
text: 'Y Label',
|
||
|
position: 'outer-middle'
|
||
|
},
|
||
|
tick: {
|
||
|
format: d3.format("$,") // ADD
|
||
|
}
|
||
|
},
|
||
|
y2: {
|
||
|
show: true,
|
||
|
label: {
|
||
|
text: 'Y2 Label',
|
||
|
position: 'outer-middle'
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
});
|
||
|
|
||
|
%p Then, the chart will be like this:
|
||
|
|
||
|
#chart3_4
|
||
|
%br
|
||
|
|
||
|
%p More information about the options, please see <a href="/examples.html">Examples</a>. (We'll add the reference soon)
|
||
|
|
||
|
%hr
|
||
|
|
||
|
%section
|
||
|
%h3
|
||
|
%a( href="#api" ) 4. Use APIs
|
||
|
%p By using APIs, you can update the chart after it's been rendered. We will introduce some of APIs here. APIs can be called through the object returned from <span class="code">generate()</span>.
|
||
|
|
||
|
%h4 1. Load Data
|
||
|
%p By using <span class="code">load()</span> API, you can load data and update the chart dynamically as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
// var chart = c3.generate({ ... });
|
||
|
|
||
|
chart.load({
|
||
|
columns: [
|
||
|
['data1', 300, 100, 250, 150, 300, 150, 500],
|
||
|
['data2', 100, 200, 150, 50, 100, 250]
|
||
|
]
|
||
|
});
|
||
|
|
||
|
%p If you push the button "Load" below, this code will run and the chart will be updated.
|
||
|
|
||
|
%button.small( onclick="example4_1();" ) Load
|
||
|
|
||
|
#chart4_1
|
||
|
%br
|
||
|
|
||
|
%h4 2. Unload Data
|
||
|
%p By using <span class="code">unload()</span> API, you can unload the data dynamically as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
// var chart = c3.generate({ ... });
|
||
|
|
||
|
chart.unload({
|
||
|
ids: ['data2', 'data3']
|
||
|
});
|
||
|
|
||
|
%p If you push the button "Unload" below, this code will run and the chart will be updated.
|
||
|
|
||
|
%button.small( onclick="example4_2();" ) Unload
|
||
|
|
||
|
#chart4_2
|
||
|
%br
|
||
|
|
||
|
%p Please use <span class="code">unload</span> param in <span class="code">load()</span> API if load and unload need to run simultaneously. Please see <a href="/samples/data_load.html">this example</a>.
|
||
|
|
||
|
%h4 3. Show/Hide Data
|
||
|
%p By using <span class="code">show()</span> and <span class="code">hide()</span> API, you can show/hide the data dynamically as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.javascript
|
||
|
:preserve
|
||
|
// var chart = c3.generate({ ... });
|
||
|
|
||
|
chart.hide(['data2', 'data3']);
|
||
|
chart.show(['data2', 'data3']);
|
||
|
|
||
|
%p If you push the button "Show" and "Hide" below, this code will run and the chart will be updated.
|
||
|
|
||
|
%button.small( onclick="example4_3_2();" ) Hide
|
||
|
%button.small( onclick="example4_3_1();" ) Show
|
||
|
|
||
|
#chart4_3
|
||
|
%br
|
||
|
|
||
|
%p The documentation about APIs is poor now, so please check the <a href="https://github.com/c3js/c3/issues?state=open">issues on github</a>. There might be some hints about what you want to do. (We will add the document soon)
|
||
|
|
||
|
%hr
|
||
|
|
||
|
%section
|
||
|
%h3
|
||
|
%a( href="#style" ) 5. Customize Style
|
||
|
%p C3 give some classes for each element when generating. So, you can change the style of the elements by using those classes.
|
||
|
%h4 1. Line style
|
||
|
%p The lines have <span class="code">c3-line-[id]</span> class, so this class can be used to define the style in css as follows:
|
||
|
|
||
|
.sourcecode.highlight
|
||
|
%pre
|
||
|
%code.css
|
||
|
:preserve
|
||
|
#chart .c3-line-data2 {
|
||
|
stroke-width: 5px;
|
||
|
}
|
||
|
|
||
|
#chart5_1
|
||
|
%br
|
||
|
|
||
|
%p Please check the class for each element if you want to change the style. Web Inspector would be useful. (We will add the document for class definition soon)
|
||
|
|
||
|
%hr
|
||
|
|
||
|
%section
|
||
|
%h3
|
||
|
%a( href="#more" ) 6. And More..
|
||
|
%p Please check the <a href="/examples.html">examples</a> and the <a href="https://github.com/c3js/c3/issues?state=open">issues</a> on github for more information. Sorry for the poor documentation. We're working on now and please give me some time. Thank you.
|
||
|
|
||
|
= partial :footer
|
||
|
|
||
|
= partial :script
|
||
|
= partial :script_scroll
|
||
|
= javascript_include_tag 'gettingstarted.js'
|