使用jquery图表插件jqplot之折线图

本文将介绍如何使用jqplot库绘制简单折线图,并通过代码示例展示如何给图表添加标题、修改坐标轴样式、设置线条样式以及显示坐标点标签等高级功能。从基础到进阶,让你轻松掌握jqplot图表绘制技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

首先一个简单的折线图:

直接上代码:

 <html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<script type="text/javascript" src="js/jquery.min.js"></script><!-- 这是必要的js库,最好顺序不要错,不然要报错-->
<script type="text/javascript" src="js/jquery.jqplot.min.js"></script>
<script type="text/javascript" src="js/jqplot.canvasTextRenderer.min.js"></script>
<script type="text/javascript" src="js/jqplot.canvasAxisLabelRenderer.min.js"></script>
<script type="text/javascript" src="js/jqplot.canvasAxisTickRenderer.min.js"></script>
<script type="text/javascript" src="js/demo.js"></script>


<link href="css/jquery.jqplot.css" rel="stylesheet">
<title>chart</title>
</head>
<body>
    <div class="container" align="center">
        
<div id="chart1" style="height: 270px; width: 830px;"></div>
        
    </div>
</body>
</html>


demo.js:

$(document).ready(function(){

var data=[[3,7,9,1,4,6,8,2,5]];//这里是折线点的数据,格式[x,y],这里只写了一组数据,默认为y轴上的数据,而x上的数据默认为:1,2,3,4;
  var plot1 = $.jqplot ('chart1',data);//第一个参数为显示图表容器ID
});


就这样一个简单的图表就完成了。

我们还可以给它加些东西,比如这样:

代码如下:

$(document).ready(function(){
  var plot2 = $.jqplot ('chart1', [[3,7,9,1,4,6,8,2,5]], {
      // 给图表设置标题
      title: 'Plot With Options',
     
      // 设置坐标系一些属性
      axesDefaults: {
       //给坐标系的一些标签添加渲染效果
        labelRenderer: $.jqplot.CanvasAxisLabelRenderer
      },
     
      // 设置坐标系样式
      axes: {
       
        xaxis: {
          label: "X Axis",//给X轴添加标题
        },
        yaxis: {
          label: "Y Axis"
        }
      }
    });
});
还可以变成这样:

代码如下:

$(document).ready(function(){
  // 初始化数据
  var cosPoints = [];
  for (var i=0; i<2*Math.PI; i+=0.4){
    cosPoints.push([i, Math.cos(i)]);
  }
    
  var sinPoints = [];
  for (var i=0; i<2*Math.PI; i+=0.4){
     sinPoints.push([i, 2*Math.sin(i-.8)]);
  }
    
  var powPoints1 = [];
  for (var i=0; i<2*Math.PI; i+=0.4) {
      powPoints1.push([i, 2.5 + Math.pow(i/4, 2)]);
  }
    
  var powPoints2 = [];
  for (var i=0; i<2*Math.PI; i+=0.4) {
      powPoints2.push([i, -2.5 - Math.pow(i/4, 2)]);
  }
 
  var plot3 = $.jqplot('chart1', [cosPoints, sinPoints, powPoints1, powPoints2],
    {
      title:'Line Style Options',
     
      // 设置线条的样式
      series:[
          {
            // 设置线条1的宽度和点的样式
            lineWidth:2,
            markerOptions: { style:'dimaond' }//点的样式为砖石
          },
          {
             // 设置线条2的不显示两点之间的线条,设置点的大小和样式
            showLine:false,
            markerOptions: { size: 7, style:"x" }
          },
          {
          
            markerOptions: { style:"circle" }//设置点的样式为圆点
          },
          {
            //设置点的样式为正方形
            lineWidth:5,
            markerOptions: { style:"filledSquare", size:10 }
          }
      ]
    }
  );
    
});
还可以做成这样:

代码如下:
//
var labels=["Associates' Direct Cost"];
var lineData=[{"model":"2111-5","cpName":"Associates' Direct Cost","value":"124.12400000","begin":"2013-02-13 00:00:00","end":"2013-04-12 00:00:00","Warehouse":"Homelegance, Inc"}]//这是数据格式
plot = $.jqplot("", lineData, {
        title: "Cost for Model \"" + data[0].model + "\"",
        animate: !$.jqplot.use_excanvas,//禁用扩展插件中的动画效果
        animateReplot: true,//动态画线条
        seriesDefaults: {
            pointLabels:{ //设置坐标点标签
                show:true,
                location:'n',//设置标签显示在坐标点的位置,用英文方向缩写表示的。
                ypadding:3//在垂直方向的偏移量
                }
         },
         cursor:{ //设置光标样式
              show: true,
              zoom:true, //让光标在图表区显示
              showTooltip:false//当光标在图表区时是否显示提示框,提示的是坐标信息
         },
         axes:{
            xaxis:{
                renderer:$.jqplot.DateAxisRenderer,//设置x轴日期渲染插件
                tickOptions:{
                    formatString:'%b %#d, %y',//设置日期显示样式
                    angle: -30
                    }
            },
            yaxis:{
                labelRenderer: $.jqplot.CanvasAxisLabelRenderer,//一种标签渲染插件
                tickOptions : {
                    angle: -30,
                    formatString : '$%.2f'
                }
            }
        },

        legend:{//显示下面的示意图
            renderer: $.jqplot.EnhancedLegendRenderer,//渲染插件
            show:true,
            location: 's',
            labels : labels,//labels指的是每种颜色所表示的东西,这里放的是cp_Name;
            placement:'outside',//设置显示在图表中还是在图表外
            yoffset: 60,//垂直偏移量
            rendererOptions:{
                numberRows: 1//显示多少行
            }
        }        
      });


需要的js文件有:
<script type="text/javascript" src="js/jquery.min.js"></script>
<script type="text/javascript" src="js/jquery.jqplot.min.js"></script>
<script type="text/javascript" src="js/jqplot.canvasTextRenderer.min.js"></script>
<script type="text/javascript" src="js/jqplot.canvasAxisLabelRenderer.min.js"></script>
jqplot.enhancedLegendRenderer.min.js,jqplot.dateAxisRenderer.min.js,jqplot.highlighter.min.js,jqplot.pointLabels.min.js,jqplot.cursor.min.js
excanvas.compiled.js,jquery.jqplot.css

jqplot功能很强大的,还可以画很多很多的图形。今天只说到这里了。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值