首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >重绘jqPlot

重绘jqPlot
EN

Stack Overflow用户
提问于 2012-03-15 23:32:09
回答 3查看 12.5K关注 0票数 4

我正在使用一个jqPlot,想知道当有人改变窗口大小时,是否有办法调整它的大小/重画它。我知道有一个重画函数,但我不确定如何真正调用它…有人能给我一些如何做到这一点的建议吗?

下面是我的代码:

代码语言:javascript
复制
$.jqplot('chart1', [line1], {
              title:'Users Per Day',
              axes:{
                xaxis:{
                  renderer:$.jqplot.DateAxisRenderer,
                  tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
               //   tickInterval:'1 week',
                  tickOptions:{
                    formatString:'%b %#d, %y',
                    angle:-30
                  } 
                },
                yaxis:{
                  tickOptions:{
                    formatString:'%.1f'
                    }
                }
              },
              highlighter: {
                show: true,
                sizeAdjust: 7.5
              },
              cursor: {
                  show: false
                  /*show: true,
                  zoom: true,
                  showTooltip: false */
              }
          });

‘div’是在此代码之前填充的数组,而chart1是绘制图表的line1。

有什么想法吗?

谢谢,

克雷格

EN

回答 3

Stack Overflow用户

发布于 2012-04-13 01:42:59

有关可调整大小的图的页面非常有用:http://www.jqplot.com/deploy/dist/examples/resizablePlot.html

这就是我如何为我正在处理的一个项目解决您的特定问题的方法(我将使用您的代码作为示例):

首先,将绘图赋给一个变量:

代码语言:javascript
复制
plot = $.jqplot('chart1', [line1], {
          title:'Users Per Day',
          axes:{
            xaxis:{
              renderer:$.jqplot.DateAxisRenderer,
              tickRenderer: $.jqplot.CanvasAxisTickRenderer ,
           //   tickInterval:'1 week',
              tickOptions:{
                formatString:'%b %#d, %y',
                angle:-30
              } 
            },
            yaxis:{
              tickOptions:{
                formatString:'%.1f'
                }
            }
          },
          highlighter: {
            show: true,
            sizeAdjust: 7.5
          },
          cursor: {
              show: false
              /*show: true,
              zoom: true,
              showTooltip: false */
          }
      });

然后在你的页面上添加这个函数:

代码语言:javascript
复制
$(window).resize(function() {
        plot.replot( {resetAxes: true } );
    });

有了resetAxes,它也会重新调整轴的比例(你确实会丢失你设置的任何最小/最大值)。有关replot:http://www.jqplot.com/docs/files/jqplot-core-js.html#jqPlot.replot的更多信息,请参阅此页面。

票数 8
EN

Stack Overflow用户

发布于 2015-06-24 17:52:03

我用过

代码语言:javascript
复制
    var timer;
    $(window).resize(function () {
        clearTimeout(timer);
        timer = setTimeout(function () {
            plot.replot({});
        }, 100);
    });

因此,它不会一直重新绘制每个像素,而是在调整大小的末尾。

票数 2
EN

Stack Overflow用户

发布于 2012-03-24 17:14:20

通常情况下,jqplot图表占据了图表div ID所占的整个区域。因此,试着找到一种方法来重新调整div的大小,并在plot对象上调用redraw来重新绘制图表。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9722964

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档