Jquery的画图插件-jqPlot+
JqPlot(个人和商业都免费)
http://yunpan.cn/Q7Yh5dUNPjtak 提取码 3653
下面开始制作一个柱状图:
----------------------------我的一个案例---------------------------------------------
首先: 签入页面js、css等
说明一下excanvas.min.js或excanvas.js的引用是为了使用IE7/8
css代码:
<style type="text/css">
div.jqplot
{
margin: 40px;
}
</style>
js代码 :
<script type="text/javascript" language="javascript">
$(document).ready(function() {
$.jqplot.config.enablePlugins = true;
var bar1 = $("#Hidden1").val().split(',');
var bar2 = $("#Hidden2").val().split(',');
var bar3 = $("#Hidden3").val().split(',');
var bar4 = $("#Hidden4").val().split(',');
var line1 = new Array();
var line2 = new Array();
var line3 = new Array();
var ticks = new Array();
$(bar1).each(function(index, values) { line1.push(parseFloat(bar1[index])); });
$(bar2).each(function(index, values) { line2.push(parseFloat(bar2[index])); });
$(bar3).each(function(index, values) { line3.push(parseFloat(bar3[index])); });
$(bar4).each(function(index, values) { ticks.push(parseFloat(bar4[index])); });
plot2 = $.jqplot('chart2', [line1, line2, line3], {
seriesDefaults: { fill: true, fillToZero: true, showMarker: true, renderer: $.jqplot.BarRenderer, pointLabels: { show: true} },
axesDefaults: { fontSize: '18px', fontFamily: 'Tahoma', fontWeight: 'normal' },
title: "每日方案统计图", //标题
legend: { show: true, location: 'ne' },
series: [{ label: '每日共提水量' }, { label: '每日用户用水量' }, { label: '每日存入水库水量'}],
axes: {
xaxis: { renderer: $.jqplot.CategoryAxisRenderer, ticks: ticks, tickOptions: { formatString: '%d'} },
yaxis: { autoscale: true }
}
});
});
</script>
在HTML中敲入代码 :
<div id="chart2" style="height: 320px; width: 1000px; margin-left: 20px"> </div>
<input name="Hidden1" type="hidden" id="Hidden1" value="3076.156" />
<input name="Hidden2" type="hidden" id="Hidden2" value="1786.699" />
<input name="Hidden3" type="hidden" id="Hidden3" value="1289.457" />
<input name="Hidden4" type="hidden" id="Hidden4" value="21日" />
图形:
其Hidden1、Hidden2、Hidden3、Hidden4值的格式为:2,8,6,5,2,9 (以逗号来隔开的数字)
若值为以逗号隔开的数据,图形表示如:
----------------------------网上Copy的JqPlot中文API---------------------------------------------
options =
{
seriesColors: [ "#4bb2c5", "#c5b47f", "#EAA228", "#579575", "#839557", "#958c12",
"#953579", "#4b5de4", "#d8b83f", "#ff5800", "#0085cc"], // 默认显示的分类颜色,
//如果分类的数量超过这里的颜色数量,则从该队列中第一个位置开始重新取值赋给相应的分类
stackSeries: false, // 如果置为true并且有多个分类(如果是折线图,就必须多于一条折线),
// 那么每个分类(折线)在纵轴上的值为其前所有分类纵轴值总和与其纵
//轴值相加值(eg,当前分类纵轴值为Y3
//,其前有Y2,Y1,那么他显示在Y轴上值为Y2+Y3+Y1,目前该属性支持线图和柱状图
title: '', //设置当前图的标题
title: {
text: '', // 设置当前图的标题
show: true,//设置当前标题是否显示
},
axisDefaults: {
show: false, // wether or not to renderer the axis. Determined automatically.
min: null, // 横(纵)坐标显示的最小值
max: null, // 横(纵)坐标显示的最大值
pad: 1.2, // 一个相乘因子,
//(数据在横(纵)轴上最大值-数据在横(纵)轴上最小值)*pad值=该轴显示的横(纵)坐标区间长度
// 该轴显示的横(纵)坐标区间长度=横(纵)坐标显示的最大值-横(纵)坐标显示的最小值
//如果设置了max和min的值的话,那么会优先考虑min和max设置的值
ticks: [], //设置横(纵)坐标的刻度上的值,可为该ticks数组中的值,
// a 1D [val1, val2, ...], or 2D [[val, label], [val, label], ...]
numberTicks: undefined, //一个相除因子,用于设置横(纵)坐标刻度间隔
//横(纵)坐标刻度间隔值=横(纵)坐标区间长度/(numberTicks-1)
tickInterval:'', //横(纵)坐标刻度间隔值,可为日期字符串
renderer: $.jqplot.LinearAxisRenderer, // 设置横(纵)轴上数据加载的渲染器,有dateAxisRenderer(参见本文最后相关介绍)。
rendererOptions: {}, // 设置renderer的Option配置对象,线状图不需要设置
//不同图表的Option配置对象请参见下面《jqPlot各个不同插件的Option对象设置》
//中各个图表的配置Option对象
tickOptions: {
mark: 'outside', // 设置横(纵)坐标刻度在坐标轴上显示方式,分为坐标轴内,外,穿过坐标轴显示
// 值也分为:'outside', 'inside' 和 'cross',
showMark: true, //设置是否显示刻度
showGridLine: true, // 是否在图表区域显示刻度值方向的网格线
markSize: 4, // 每个刻度线顶点距刻度线在坐标轴上点距离(像素为单位)
//如果mark值为 'cross', 那么每个刻度线都有上顶点和下顶点,刻度线与坐标轴
//在刻度线中间交叉,那么这时这个距离×2,
show: true, // 是否显示刻度线,与刻度线同方向的网格线,以及坐标轴上的刻度值
showLabel: true, // 是否显示刻度线以及坐标轴上的刻度值
formatString: '', // 梃置坐标轴上刻度值显示格式,eg:'%b %#d, %Y'表示格式"月 日,年","AUG 30,2008"
fontSize:'10px', //刻度值的字体大小
fontFamily:'Tahoma', //刻度值上字体
angle:40, //刻度值与坐标轴夹角,角度为坐标轴正向顺时针方向
fontWeight:'normal', //字体的粗细
fontStretch:1//刻度值在所在方向(坐标轴外)上的伸展(拉伸)度
}
showTicks: true, /// 是否显示刻度线以及坐标轴上的刻度值
showTickMarks: true, //设置是否显示刻度
useSeriesColor: true //如果有多个纵(横)坐标轴,通过该属性设置这些坐标轴是否以不同颜色显示
},
axes: {
xaxis: {
// 设置同 axisDefaults
},
yaxis: {
// 设置同 axisDefaults
},
x2axis: {
// 设置同 axisDefaults
},
y2axis: {
// 设置同 axisDefaults
}
},
seriesDefaults: {//如果有多个分类,这可通过该配置属性设置各个分类的共性属性
show: true, // 设置是否渲染整个图表区域(即显示图表中内容)
xaxis: 'xaxis', // either 'xaxis' or 'x2axis'.
yaxis: 'yaxis', // either 'yaxis' or 'y2axis'.
label: '', // 用于显示在分类名称框中的分类名称
color: '', // 分类在图标中表示(折现,柱状图等)的颜色
lineWidth: 2.5, // 分类图(特别是折线图)哪宽度
shadow: true, // 各图在图表中是否显示阴影区域
shadowAngle: 45, // 参考grid中相同参数
shadowOffset: 1.25, // 参考grid中相同参数
shadowDepth: 3, // 参考grid中相同参数
shadowAlpha: 0.1, // 参考grid中相同参数
showLine: true, //是否显示图表中的折线(折线图中的折线)
showMarker: true, // 是否强调显示图中的数据节点
fill: false, // 是否填充图表中折线下面的区域(填充颜色同折线颜色)以及legend
//设置的分类名称框中分类的颜色,此处注意的是如果fill为true,
//那么showLine必须为true,否则不会显示效果
fillAndStroke: false, //在fill为true的状态下,在填充区域最上面显示一条线(如果是折线图则显示该折线)
fillColor: undefined, // 设置填充区域的颜色
fillAlpha: undefined, // 梃置填充区域的透明度
renderer: $.jqplot.PieRenderer, // 利用渲染器(这里是利用饼图PieRenderer)渲染现有图表
//,从而转换成所需图表
rendererOptions: {}, // 传给上个属性所设置渲染器的option对象,线状图的渲染器没有option对象,
//不同图表的Option配置对象请参见下面《jqPlot各个不同插件的Option对象设置》
//中各个图表的配置Option对象
markerRenderer: $.jqplot.MarkerRenderer, // renderer to use to draw the data
// point markers.
markerOptions: {
show: true, // 是否在图中显示数据点
style: 'filledCircle', // 各个数据点在图中显示的方式,默认是"filledCircle"(实心圆点),
//其他几种方式circle,diamond, square, filledCircle,
// filledDiamond or filledSquare.
lineWidth: 2, // 数据点各个的边的宽度(如果设置过大,各个边会重复,会显示的类似于实心点)
size: 9, // 数据点的大小
color: '#666666' // 数据点的颜色
shadow: true, // 是否为数据点显示阴影区(增加立体效果)
shadowAngle: 45, // 阴影区角度,x轴顺时针方向
shadowOffset: 1, // 参考grid中相同参数
shadowDepth: 3, //参考grid中相同参数
shadowAlpha: 0.07 // 参考grid中相同参数
}
isDragable: true,//是否允许拖动(如果dragable包已引入),默认可拖动
},
series:[//如果有多个分类需要显示,这在此处设置各个分类的相关配置属性
//eg.设置各个分类在分类名称框中的分类名称
//[label: 'Traps Division'},{label: 'Decoy Division'},{label: 'Harmony Division'}]
//配置参数设置同seriesDefaults
],
legend: {
show: false,//设置是否出现分类名称框(即所有分类的名称出现在图的某个位置)
location: 'ne', // 分类名称框出现位置, nw, n, ne, e, se, s, sw, w.
xoffset: 12, // 分类名称框距图表区域上边框的距离(单位px)
yoffset: 12, // 分类名称框距图表区域左边框的距离(单位px)
background:'' //分类名称框距图表区域背景色
textColor:'' //分类名称框距图表区域内字体颜色
..其他关于样式设计参考官方文档
},
grid: {
drawGridLines: true, // wether to draw lines across the grid or not.
gridLineColor: '#cccccc' // 设置整个图标区域网格背景线的颜色
background: '#fffdf6', // 设置整个图表区域的背景色
borderColor: '#999999', // 设置图表的(最外侧)边框的颜色
borderWidth: 2.0, //设置图表的(最外侧)边框宽度
shadow: true, // 为整个图标(最外侧)边框设置阴影,以突出其立体效果
shadowAngle: 45, // 设置阴影区域的角度,从x轴顺时针方向旋转
shadowOffset: 1.5, // 设置阴影区域偏移出图片边框的距离
shadowWidth: 3, // 设置阴影区域的宽度
shadowDepth: 3, // 设置影音区域重叠阴影的数量
shadowAlpha: 0.07 // 设置阴影区域的透明度
renderer: $.jqplot.CanvasGridRenderer, // renderer to use to draw the grid.
rendererOptions: {} // options to pass to the renderer. Note, the default
// CanvasGridRenderer takes no additional options.
},
// BarRenderer(设置柱状图的Option对象)
//该Option对象适用与柱状图的series和seriesDefault属性的相关配置对象设置
seriesDefaults: {
rendererOptions: {
barPadding: 8, //设置同一分类两个柱状条之间的距离(px)
barMargin: 10, //设置不同分类的两个柱状条之间的距离(px)(同一个横坐标表点上)
barDirection: 'vertical', //设置柱状图显示的方向:垂直显示和水平显示
//,默认垂直显示 vertical or horizontal.
barWidth: null, // 设置柱状图中每个柱状条的宽度
shadowOffset: 2, // 同grid相同属性设置
shadowDepth: 5, // 同grid相同属性设置
shadowAlpha: 0.8, // 同grid相同属性设置
}
},
// Cursor(光标)
// 鼠标移动到图中时,鼠标在图中显示形式,常与和高亮功能同时使用
//此外,通过设置该属性的zoom相关属性来对图中某个区域钻取(就选定区域放大)
//该配置对象直接在option下配置
cursor: {
style: 'crosshair', //当鼠标移动到图片上时,鼠标的显示样式,该属性值为css类
show: true, //是否显示光标
showTooltip: true, // 是否显示提示信息栏
followMouse: false, //光标的提示信息栏是否随光标(鼠标)一起移动
tooltipLocation: 'se', // 光标提示信息栏的位置设置。如果followMouse=true,那么该位置为
//提示信息栏相对于光标的位置。否则,为光标提示信息栏在图标中的位置
// 该属性可选值: n, ne, e, se, etc.
tooltipOffset: 6, //提示信息栏距鼠标(followMouse=true)或坐标轴(followMouse=false)的位置
showTooltipGridPosition: false,//是否在信息提示栏中显示光标位置(取其据图标左和上边缘线像素距离)
showTooltipUnitPosition: true,// 是否显示提示光标所在位置(取其在横纵轴上数据值)的信息栏
//注:注意此处与showTooltipGridPosition值区别,前者显示坐标值,该处显示的是数据值
tooltipFormatString: '%.4P', // 同Highlighter的tooltipFormatString
useAxesFormatters: true, // 同Highlighter的tooltipFormatString
tooltipAxesGroups: [], // show only specified axes groups in tooltip. Would specify like:
// [['xaxis', 'yaxis'], ['xaxis', 'y2axis']]. By default, all axes
// combinations with for the series in the plot are shown.
},
// Dragable(拖动)
//该配置对象通过seriesDefaults和series配置对象进行配置
seriesDefaults: {
dragable: {
color: undefined, // 当拖动数据点是,拖动线与拖动数据点颜色
constrainTo: 'none', //设置拖动的的范围: 'x'(只能在横向上拖动),
// 'y'(只能在纵向上拖动), or 'none'(无限制).
},
},
// Highlighter(高亮)
//设置高亮动作option属性对象
//鼠标移动到某个数据点上时,该数据点增大并显示提示信息框
//该配置对象直接在option下配置
highlighter: {
lineWidthAdjust: 2.5, //当鼠标移动到放大的数据点上时,设置增大的数据点的宽度
// 目前仅适用于非实心数据点
sizeAdjust: 5, // 当鼠标移动到数据点上时,数据点扩大的增量增量
showTooltip: true, // 是否显示提示信息栏
tooltipLocation: 'nw', // 提示信息显示位置(英文方向的首写字母): n, ne, e, se, s, sw, w, nw.
fadeTooltip: true, // 设置提示信息栏出现和消失的方式(是否淡入淡出)
tooltipFadeSpeed: "fast"//设置提示信息栏淡入淡出的速度: slow, def, fast, 或者是一个毫秒数的值.
tooltipOffset: 2, // 提示信息栏据被高亮显示的数据点的偏移位置,以像素计。
tooltipAxes: 'both', // 提示信息框显示数据点那个坐标轴上的值,目前有横/纵/横纵三种方式。
//值分别为 x, y or xy.
tooltipSeparator: ', ' // 提示信息栏不同值之间的间隔符号
useAxesFormatters: true // 提示信息框中数据显示的格式是否和该数据在坐标轴上显示格式一致
tooltipFormatString: '%.5P' // 用于设置提示信息框中数据显示的格式,前提条件是useAxesFormatters
// 为false. 此时信息提示框中数据格式不再与坐标轴一致,而是以此为准
//同时,该属性还支持html格式字符串
//eg:'hello %.2f'
},
// LogAxisRenderer(指数渲染器)
// 该渲染器只有两个属性,指数渲染器通过axesDefaults和axes配置对象进行配置
axesDefaults: {
base: 10, // 指数的底数
tickDistribution: 'even', // 坐标轴显示方式:'even' or 'power'. 'even' 产生的是均匀分布于坐标
//轴上的坐标刻度值 。而'power' 则是根据不断增大的增数来确定坐标轴上的刻度
},
// PieRenderer(设置饼状图的OPtion对象)
// 饼状图通过seriesDefaults和series配置对象进行配置
seriesDefaults: {
rendererOptions: {
diameter: undefined, // 设置饼的直径
padding: 20, // 饼距离其分类名称框或者图表边框的距离,变相该表饼的直径
sliceMargin: 20, // 饼的每个部分之间的距离
fill:true, // 设置饼的每部分被填充的状态
shadow:true, //为饼的每个部分的边框设置阴影,以突出其立体效果
shadowOffset: 2, //设置阴影区域偏移出饼的每部分边框的距离
shadowDepth: 5, // 设置阴影区域的深度
shadowAlpha: 0.07 // 设置阴影区域的透明度
}
},
//pointLabels(数据点标签)
//用于在数据点所在位置显示相关信息(非提示框性质)
seriesDefaults: {
pointLabels: {
location:'s',//数据标签显示在数据点附近的方位
ypadding:2 //数据标签距数据点在纵轴方向上的距离
}
}
// Trendline(趋势线)
// 饼状图通过seriesDefaults和series配置对象进行配置
seriesDefaults: {
trendline: {
show: true, // 是否显示趋势线
color: '#666666', // 趋势线颜色
label: '', // 趋势线名称
type: 'linear', //趋势线类型'linear'(直线), 'exponential'(幂值数线) or 'exp'
shadow: true, // 同grid相同属性设置
lineWidth: 1.5, // 趋势线宽度
shadowAngle: 45, // 同grid相同属性设置
shadowOffset: 1.5, // 同grid相同属性设置
shadowDepth: 3, // 同grid相同属性设置
shadowAlpha: 0.07 // 同grid相同属性设置
}
}
}
Jquery的画图插件-jqPlot+的更多相关文章
- jQuery插件jqplot的详细配置说明和渲染器
jQuery插件jqplot的详细配置说明和渲染器 (2012-08-23 08:57:42) 转载▼ 标签: jqplot 详细配置 渲染器 it 分类: 技术类 jQuery.jqplot插件的官 ...
- 一款可定制的外国jQuery图表插件jqplot
jqPlot是一个jQuery绘图插件,可以利用它制作漂亮的线状图和柱状图.jqPlot支持为图表设置各种不同的样式.提供Tooltips,数据点高亮显示等功能. 用法: 1.引入jQuery类库和相 ...
- jquery画图插件jPainter
jquery画图插件jPainter 一.总结 一句话总结:四年前的项目,四年无更新,不好用. 二.基于HTML5 Canvas和jQuery 的画图工具的实现 简介 HTML5 提供了强大的Canv ...
- 5个最顶级jQuery图表类库插件-Charting plugin
转载: http://www.cnblogs.com/chu888chu888/archive/2012/12/22/2828962.html 作者:Leonel Hilario翻译:Terry li ...
- 推荐几款jquery图片切换插件
一.前言 毕业季到了,大家都在匆匆忙忙的记录大学里最美好的时光,照片中各种花式.各种姿势都涌现出来了.这么多的照片怎么展示出来给自己的好友看呢?有人选择做成视频,有人选择ps之后做成图片集,而我选择利 ...
- 提升用户体验的最佳免费 jQuery 表单插件
网页表单是一个老生常谈的话题.出于这样或那样的目的,一些示例中都会包括用户注册,电子商务结算,用户设置甚至联系人表格.而输入栏是非常容易用现代的CSS3技术来应用样式.但是到底什么决定整体用户体验? ...
- jQuery为开发插件提拱了两个方法:jQuery.fn.extend(); jQuery.extend();
jQuery为开发插件提拱了两个方法,分别是: jQuery.fn.extend(); jQuery.extend(); jQuery.fn jQuery.fn = jQuery.prototype ...
- jQuery 人脸识别插件,支持图片和视频
jQuery Face Detection 是一款人脸检测插件,能够检测到图片,视频和画布中的人脸坐标.它跟踪人脸并输出人脸模型的坐标位置为一个数组.我们相信,面部识别技术能够给我们的 Web 应用带 ...
- myWaterfall - jQuery瀑布流布局插件
myWaterfall - jQuery瀑布流布局插件 Demo http://jsfiddle.net/q3011893/p5k2ogy8/embedded/result,html,css,js/ ...
随机推荐
- 迁移SQL SERVER 数据库实例
由于某些原因,需要将2个数据库实例合并为1个,也就是说要把其中的一台迁移到另外一台上面. 背景介绍 :下面的B,C代表2个实例,要把B中相关东西迁移到C实例上面.其中B上面有一部分的同步是从另外一台服 ...
- pecl install imagick
steven@server:/var/www$ sudo pecl install imagickdownloading imagick-2.3.0.tgz ...Starting to downlo ...
- shell编程总结
一.学习 shell脚本之前的基础知识 [linux shell中的特殊符号] 1. * :代表零个或多个字符或数字. test后面可以没有任何字符,也可以有多个字符,总之有或没有都能匹配出来. 2. ...
- SAP GUI SAPLOGON.INI
GUI是SAP系统最常用的客户端,在一台客户机上,利用GUI可以连接多套SAP系统(连接方法参见<客户端连接配置(SAP GUI 710)>),也可以设置多个快捷方式登录(参见<用快 ...
- 疑难杂症 - SQL语句整理
一.关联子查询-查日期最新列 前天在工作中遇到一条非常有用的SQL语句,想了好久愣是没搞出来.今天将这个问题模拟出来:先看表 需求是,对于每个人,仅显示时间最新的那一条记录. 答案如下: select ...
- 并行编程多线程之Parallel
1.简介 随着多核时代的到来,并行开发越来越展示出它的强大威力!使用并行程序,充分的利用系统资源,提高程序的性能.在.net 4.0中,微软给我们提供了一个新的命名空间:System.Threadin ...
- HDU 1175 连连看
连连看 Time Limit: 20000/10000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others)Total Submi ...
- Investigating Your RAM Usage
转载自:http://developer.android.com/intl/zh-cn/tools/debugging/debugging-memory.html Because Android is ...
- 让我们一起Go(十二)
前言: 上篇中,我们讲到了在Go语言中如何定义方法,今天,我们将进一步深入Go语言的面向对象编程. 一.Go语言中的接口 首先来看一个最基本的接口: 和定义一个结构体类似,只不过将struct换成了i ...
- JavaScript备忘录(2)——闭包
语句 JavaScript是解释型语言,解释器是按照顺序逐句执行的(除了进行一些少量预处理,如将函数声明提前). 顺序是由流程控制语句来控制的,常用的流程控制语句包括: 条件控制语句:if...els ...