pizza.js是一款基于HTML5 SVG的跨设备的jQuery图表插件。该图表插件可以制作饼状图、圆环图、柱状图和线性图。因为它是基于SVG生成的图表,所以在任何设备中都不会失真。
使用方法
使用该jQuery图表插件需要引入jQuery、snap.svg.js、jquery.pizza.js和pizza.css文件。
<link href="stylesheets/pizza.css" media="screen, projector, print" rel="stylesheet" type="text/css" /> <script src="js/jquery.min.js"></script> <script src="js/vendor/snap.svg.js"></script> <script src="js/jquery.pizza.js"></script>
HTML结构
pizza.js图表可以分为饼状图、柱状图和线性图,它们的HTML结构基本类似。
饼状图的HTML结构如下:使用一个无序列表,每一个列表项都有一个data-value
值,代表所占的百分比。
<ul data-pie-id="my-cool-pie-chart"> <li data-value="36">Pepperoni</li> <li data-value="14">Sausage</li> <li data-value="8">Cheese</li> <li data-value="11">Mushrooms</li> <li data-value="7">Chicken</li> <li data-value="24">Other</li> </ul> <div id="my-cool-pie-chart"></div>
柱状图的HTML结构如下:
<ul data-bar-id="my-cool-bar-chart"> <li data-value="36">Pepperoni</li> <li data-value="14">Sausage</li> <li data-value="8">Cheese</li> <li data-value="11">Mushrooms</li> <li data-value="7">Chicken</li> <li data-value="24">Other</li> </ul> <div id="my-cool-bar-chart"></div>
线性图的HTML结构如下:
<ul data-pie-id="my-cool-line-graph"> <li data-x="36" data-y="1">Pepperoni</li> <li data-x="14" data-y="2">Sausage</li> <li data-x="8" data-y="3">Cheese</li> <li data-x="11" data-y="4">Mushrooms</li> <li data-x="7" data-y="5">Chicken</li> <li data-x="24" data-y="6">Other</li> </ul> <div id="my-cool-line-graph"></div>
在各种图表的无序列表之后都有一个<div>
元素,它们通过id
和无序列表的data-pie-id
属性关联,这是实际生成图表的地方。
SASS
该图表插件使用SASS来编写统一样式。如果你不使用SASS,也可以使用其它的方式。
下面是一些SASS变量:
//Base color for the charts $pie-color: $primary-color;
$pie-color
用于设置图表的颜色,上面的例子使用的是Foundation的$primary-color
颜色,你可以更换为其它十六进制的颜色。
另外还有2个Sass mixins可以设置图表的主题。你只需要引入其中一个。
@mixin darkened-children($num-children, $color) { @for $i from 1 through $num-children { $color: scale-color($color, $lightness: -10%); & > *:nth-child(#{$num-children}n+#{$i}) { color: $color; } } } @mixin lightened-children($num-children, $color) { @for $i from 1 through $num-children { $color: scale-color($color, $lightness: 10%); & > *:nth-child(#{$num-children}n+#{$i}) { color: $color; } } }
CSS
如果你不使用SASS,可以通过CSS来调整图表的颜色。
ul[data-pie-id] li:nth-child(1) { color: red; } ul[data-pie-id] li:nth-child(2) { color: red; } ul[data-pie-id] li:nth-child(3) { color: yellow; }
JavaScript
在完成了HTML标签和CSS样式之后,你可以通过下面的方式来初始化该图表插件:
Pizza.init();
图表会在改变尺寸的时候自动进行更新,如果你改变了图表中的值,或在页面中添加了新的图表,可以再次允许初始化方法来重新加载它。
你也可以在初始化的时候为图表传入初始化数据。
Pizza.init('#example1', { data: [23, 43, 17, 7, 11] });
可以通过第二个参数来修改图表的参数设置:
Pizza.init(document.body, {border-size: 0});
也可以直接在HTML元素上进行设置:
<ul data-pie-id="my-cool-chart" data-options='{"donut": "true"}'> <li data-value="36">Pepperoni</li> <li data-value="14">Sausage</li> <li data-value="8">Cheese</li> <li data-value="11">Mushrooms</li> <li data-value="7">Chicken</li> <li data-value="24">Other</li> </ul> <div id="my-cool-chart"></div>
配置参数
该jQuery图表插件可用的配置参数如下:
{ donut: false, donut_inner_ratio: 0.4, // between 0 and 1 percent_offset: 30, // relative to radius stroke_color: '#333', stroke_width: 0, show_percent: true, // show or hide the percentage on the chart. animation_speed: 500, show_grid: true, bar_spacer: 100, bar_intervals: 6, animation_type: 'elastic' // options: backin, backout, bounce, easein, }