dojo chart详解
Dojo提供了一套很完善的统计图(Chart)接口,在dojox/charting下面,可以支持很多种类型的。
、简介
Dojo统计图提供快速的、简单的接口实现美观的、交互性强的web统计图表的实现。
1.1 基本图表
下面的代码展示的是如何用html和dojo实现一个简单的统计图。
HTML:
<divid="simplechart"style="width: 250px; height: 150px; margin: 5px auto0px auto;"></div>
Javascript:
require(["dojox/charting/Chart","dojox/charting/axis2d/Default","dojox/charting/plot2d/Lines","dojo/domReady!"],
function(Chart, Default, Lines){
var chart1 =new Chart("simplechart");
chart1.addPlot("default", {type:"Lines"});
chart1.addAxis("x");
chart1.addAxis("y", {vertical:true});
]);
chart1.render();
});
如上代码,创建任何一个图表都需要定义Plots, Axes和Series数据,其中,Plots是定义数据如何被显示,Axes定义的是数据显示的精度以及一些特殊的标签,Series是数据本身。
1.2 标题
有时候需要给图表添加标题,下面的代码演示的是如何给图表添加标题:
require(["dojox/charting/Chart","dojo/domReady!"],function(Chart){
var chart =new dojox.charting.Chart("test", {
title:"Production(Quantity)",
titlePos:"bottom",
,
titleFont:"normal normal normal 15pt Arial",
titleFontColor:"orange"
});
});
添加标题的参数如下:
|
名称 |
类型 |
默认值 |
描述 |
|
titlePos |
string |
top |
定义添加标题的位置 |
|
titleGap |
number |
定义标题之间的间距 |
|
|
title |
string |
null |
定义标题显示的内容 |
1.3 添加图表
addPlot()定义了你添加图表的类型,下面展示了一些基本的图表:
addPlot()需要两个参数,一个名称和一个参数数组。名称是非常重要的如果你有多种类型的图表存在的话。参数数组包含了你要定义的图标的一些参数,包括图表的类型等。下面的代码展示了addPlot()的使用:
require(["dojox/charting/plot2d/Areas", ...],
function(Areas, ...){
// ...
chart.addPlot("default", { type: Areas });
});
1.4 2D图表
2D的图表包括以下几种:
|
类型 |
样式 |
说明 |
|
线状图 Line charts |
Default |
Universal line chart capable to draw lines, fill areas under them, and placing markers at data points. This plot type is used if no plot type was specified when adding it to a chart. |
|
Lines |
Basic line chart. Uses Default. |
|
|
Areas |
Area under data line(s) will be filled. |
|
|
Markers |
Lines with markers. Uses Default. |
|
|
MarkersOnly |
Markers, sans lines. Uses Default. |
|
|
堆积线图 Stacked line charts |
Stacked |
Data sets charted in relation to the previous data set. Extension of Default. |
|
StackedLines |
Stacked data sets using lines. Uses Stacked. |
|
|
StackedAreas |
Stacked data sets with filled areas under chart lines. Uses Stacked. |
|
|
横向柱状图 Bars |
Bars |
Horizontal bars. |
|
ClusteredBars |
Horizontal bars with clustered data sets. |
|
|
StackedBars |
Stacked data sets with horizontal bars. |
|
|
竖向柱状图 Columns |
Columns |
Vertical bars. |
|
ClusteredColumns |
Vertical bars with clustered data sets. |
|
|
StackedColumns |
Stacked data sets with vertical bars. |
|
|
其他 Miscellaneous |
饼状图 Pie |
Typical pie chart or circle graph. |
|
蜘蛛网图 Spider |
A very effective tool for comparing multiple entities based on different characteristics. |
|
|
散点图 Scatter |
Similar to MarkerOnly, yet capable to chart using gradient fields. |
|
|
气泡图 Bubble |
Similar to scatter but with bubbles elements which sizes vary depending on the data. |
|
|
网格图 Grid |
For adding a grid layer to your chart. |
|
|
仪表盘 Indicator |
For adding vertical or horizontal indicator threshold on the chart. |
1.4.1 Lines, Areas和Markers图表
Lines, Areas和Markers图表生成时,需要五个特别的参数。首先,有三个定义方向的参数,下面的代码展示了如何定义:
require(["dojox/charting/plot2d/StackedAreas", ...], function(StackedAreas, ...){
chart.addPlot("default", { type: StackedAreas, lines:true, areas:true, markers:false });
});
此外,还有两个特殊参数, tension和interpolate。其中,tension容许你添加一些弯曲在你的图上,默认值为“”,其他可用值包括:
· “X” –
立方贝萨尔平滑曲线。
· “x” –
与“X”相似,但是默认数据点的集合是闭合循环的,一个班用于绘制真实的Xy值。
· “S”–平方贝萨尔平滑曲线。
例如:
require(["dojox/charting/plot2d/StackedLines", ...], function(StackedLines, ...){
chart.addPlot("default", {type: StackedLines, tension:"S" });
});
Interpolate让你选择在没有数据的情况下的操作,如果为false(默认值),则为折线图,否则会根据前后的值进行插值,平滑曲线显示。
Markers是固定大小与样式重新定义图表主题的。例如:
require["dojox/charting/Chart","dojox/charting/SimpleTheme"],function(Chart, SimpleTheme){
var myTheme =new SimpleTheme({
markers: {
CIRCLE:"m-6,0 c0,-8 12,-8 12,0, m-12,0 c0,8 12,8 12,0"
SQUARE:"m-6,-6 12,0 0,12 -12,0z"
}
});
var chart =new Chart().setTheme(myTheme);
});
1.4.2Bars,Columns和Candle
Stick图表
Bars,Columns和Candle Stick图表有一些特殊的参数去设置,主要有:
· gap–柱子之间的间距
· minBarSize –
最小值
· maxBarSize –
最大值
require(["dojox/charting/plot2d/Bars", ...], function(Bars, ...){
});
});
1.4.3 Bubble
Bubble提供特殊的参数去渲染,包括fill, stroke和shadow。例如:
require(["dojox/charting/plot2d/Bubble", ...], function(Bubble, ...){
chart.addPlot("default", { type: Bubble, fill:"red" });
});
1.4.4 Pie
饼状图有一些特殊的参数去设置,如下(源自Pie.js):
defaultParams: {
labels:true,
ticks:false,
fixed:true,
,
,
labelStyle:"default", // default/columns/rows/auto
htmlLabels:true // use HTML to draw labels
},
optionalParams: {
font:"",
fontColor:"",
}
1.4.5 样式控制
添加填充(fill)
添加阴影(shadow)
require(["dojox/charting/plot2d/Lines", ...], function(Lines, ...){
chart.addPlot("default", { type: Lines, markers:true,
} });
});
过滤器(filter)
require(["dojox/charting/plot2d/Columns","dojox/gfx/filters", ... , "dojox/gfx/svgext"],
function(Columns, filters, ...){
chart.addPlot("default", { type: Columns, fill:"red", filter: filters.shadows.dropShadow });
});
样式化函数(styleFunc)
require(["dojox/charting/plot2d/Columns", ...], function(Columns, ...){
chart.addPlot("default", { type: Columns, styleFunc:function(item){
){
return { fill :"red" };
){
return { fill:"green" };
}
return {};
}});
});
标注(label)
require(["dojox/charting/plot2d/Columns", ...], function(Columns, ...){
});
});
1.4.6 Spider
Spider有一些特殊的参数去设置,参数如下:
defaultParams: {
,
, // axis title offset
, // axis tick count
axisColor: "", // spider axis color
, // spider axis stroke width
axisFont:"normal normal normal 11pt Arial"// spider axis font
spiderColor: "", // spider web color
, // spider web stroke width
, // plot border with
seriesFillAlpha:0.2, // plot fill opacity
spiderOrigin: 0.16, // distance of 0 value from the middle of the circle
, // radius of plot vertex (px)
, // set division of the radar chart
, // set decimal of the displayed number
spiderType: "polygon", // style of spider web, "polygon" or "circle"
animationType: dojo.fx.easing.backOut,
}
下面的例子展示了相关参数的使用与设置:
require(["dojox/charting/plot2d/Spider","dojox/charting/widget/SelectableLegend", ...], function(Spider, SelectableLegend, ...){
// ...
chart.addPlot("default", {
type: Spider,
,
,
seriesFillAlpha:0.2,
,
,
spiderType:"polygon"
});
}}, { fill:"blue" });
}}, { fill:"green" });
// ...
}}, { fill:"purple" });
chart.render();
var legend =new SelectableLegend({chart: chart, horizontal:true},"legend");
});
1.4.7 grid
Grid也是一个参数比较独特的图表。该图表在marker绘制直线,并通过四个布尔型的参数设置直线是否显示,如下:
require(["dojox/charting/plot2d/Grid", ...], function(Grid, ...){
chart.addPlot("default", { type: Grid,
hMajorLines:true,
hMinorLines:false,
vMajorLines:true,
vMinorLines:false,
},
} });
});
1.5 配置坐标轴
1.5.1 制定坐标轴
require(["dojox/charting/plot2d/Lines", ...], function(Lines, ...){
chart.addPlot("default", {type: Lines, hAxis:"x", vAxis:"y"});
chart.addAxis("x");
chart.addAxis("y", {vertical:true});
});
零值处理
chart.addAxis("x", {fixUpper:"major", fixLower:"minor"});
chart.addAxis("y", {vertical:true, fixUpper:"major", includeZero:true});
坐标标注重复处理leftBottom
require(["dojox/charting/Chart","dojox/charting/plot2d/Lines", ...], function(Chart, Lines, ...){
// ...
var chart =new Chart("simplechart");
chart.addPlot("default", {type: Lines});
chart.addPlot("other", {type: Areas, hAxis:"other x", vAxis:"other y"});
chart.addAxis("x");
chart.addAxis("y", {vertical:true});
chart.addAxis("other x", {leftBottom:false});
chart.addAxis("other y", {vertical:true, leftBottom:false});
]);
],
{plot:"other", stroke: {color:"blue"}, fill:"lightblue"}
);
chart.render();
});
1.5.2 坐标的标题
|
Name |
Type |
Default |
Description |
|
title |
string |
null |
axis title text. |
|
titleGap |
number |
the spacing between title and corresponding axis, measured by pixel. |
|
|
titleFontColor |
string |
black |
axis title font color. |
|
titleOrientation |
string |
axis |
determine the title orientation to the axis, facing to the axis by “axis”, or facing away from the axis by “away”. |
1.5.3 坐标轴颜色等
chart.addAxis("other y", {vertical:true,
leftBottom:false,
,
stroke:"green",
font:"normal normal bold 14pt Tahoma",
fontColor:"red",
},
}
});
1.5.4 坐标轴标注
chart.addAxis("x", {
, text:"Feb"},
, text:"Apr"},
, text:"Jun"},
, text:"Aug"},
, text:"Oct"},
, text:"Dec"}]
});
或者labelfunc
var myLabelFunc =function(text, value, precision){
return text+" my unit";
};
chart.addAxis("x", { labelFunc: myLabelFunc });
dojo chart详解的更多相关文章
- Dojo初探之2:设置dojoConfig详解,dojoConfig参数详解+Dojo中预置自定义AMD模块的四种方式(基于dojo1.11.2)
Dojo中想要加载自定义的AMD模块,需要先设置好这个模块对应的路径,模块的路径就是这个模块的唯一标识符. 一.dojoConfig参数设置详解 var dojoConfig = { baseUrl: ...
- VS2010 Chart控件(一)Chart控件在ASP.NET网站中的应用示例详解(C#语言)
步骤如下: 1. Chart控件(一)Chart控件在ASP.NET网站中的应用示例详解(C#语言)" title="VS2010 Chart控件(一)Chart控件在ASP.NE ...
- [转帖]helm模板文件chart编写语法详解
helm模板文件chart编写语法详解 https://blog.51cto.com/qujunorz/2421328 需要学习一下. charts编写介绍 开始 快速创建一个chart模板,helm ...
- Struts2拦截器的使用 (详解)
Struts2拦截器的使用 (详解) 如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈default ...
- Chrome开发者工具详解(4)-Profiles面板
Chrome开发者工具详解(4)-Profiles面板 如果上篇中的Timeline面板所提供的信息不能满足你的要求,你可以使用Profiles面板,利用这个面板你可以追踪网页程序的内存泄漏问题,进一 ...
- Chrome开发者工具详解(3)-Timeline面板
Chrome开发者工具详解(3)-Timeline面板 注: 这一篇主要讲解面板Timeline,参考了Google的相关文档,主要用于公司内部技术分享.. Timeline面板 Timeline面板 ...
- Comet技术详解:基于HTTP长连接的Web端实时通信技术
前言 一般来说,Web端即时通讯技术因受限于浏览器的设计限制,一直以来实现起来并不容易,主流的Web端即时通讯方案大致有4种:传统Ajax短轮询.Comet技术.WebSocket技术.SSE(Ser ...
- Fiddler界面详解
Statistics 页签 完整页签如下图: Statistics 页签显示当前用户选择的 Sessions 的汇总信息,包括:选择的 Sessions 总数.发送字节数.接收字节数.响应类型的汇总表 ...
- Highcharts的基本属性和方法详解
Highcharts 是一个用纯JavaScript编写的一个图表库, 能够很简单便捷的在web网站或是web应用程序添加有交互性的图表,并且免费提供给个人学习.个人网站和非商业用途使用. 目前Hig ...
随机推荐
- 如何在浏览器网页中显示word文件内容
如何在浏览器网页中显示word文件内容 把word文件读到byte[]中,再Response.OutputStream.Write(bytes)到客户端去 Page_Load事件中写: //FileS ...
- smarty内置函数
1.{append} 追加 2.{assign} 赋值 3.{block} 块 4.{call} 调用 5.{capture}捕获 6.{config_load}用来从配置文件中加载config变 ...
- ActionScript和js交互
新建的ActionScript项目,默认新建会在“默认包”中创建一个和项目名称相同以as结尾的文件,as项目开始执行时要new一个这样的类在类上方加入一些参数可以为生成的swf初始化一些样式 [SWF ...
- JSP与Servlet之后台页面单条删除与多条删除的页面跳转之实现
单条删除页面跳转 1.首先打开JSP页面,找到删除 2.这个时候要把它改成servlet的URL,并决定要传给后台什么数据,例如我需要传一个待删数据的ID id并不是什么见不得人的东西(而且是后台也不 ...
- 使用Kali Linux 破解无线网
用到的工具 airmon-ngairodump-ngaireplay-ngaircrack-ng 过程 123456789101112131415161718192021222324 root@lm: ...
- Steema TeeChart Pro VCL FMX 2017.20 Full Suorce在Delphi XE10下的安装
一.首先将压缩包TeeChart Pro VCL FMX 2017.20 FS.rar解压到一个目录,比如 E:\Application\Steema TeeChart Pro VCL FMX 201 ...
- Gnostice PDFtoolkit VCL的安装
Installation and Uninstallation For New Users Close all open applications including the IDE. Run the ...
- java基础(6)--数组和方法
数组 1. 什么是数组? 数组是相同数据类型的元素组成的集合.这些元素按线性顺序排列.所谓线性顺序是指除第一个元素外,每一个元素都有唯一的前驱元素:除最后一个元素外,每一个元素都有唯一的后继元素.(“ ...
- SPFA算法 - Bellman-ford算法的进一步优化
2017-07-27 22:18:11 writer:pprp SPFA算法实质与Bellman-Ford算法的实质一样,每次都要去更新最短路径的估计值. 优化:只有那些在前一遍松弛中改变了距离点的 ...
- Flume-NG源码阅读之AvroSink
org.apache.flume.sink.AvroSink是用来通过网络来传输数据的,可以将event发送到RPC服务器(比如AvroSource),使用AvroSink和AvroSource可以组 ...