jqplot pad无法正常工作

时间:2013-03-15 12:20:46

标签: jqplot

我有以下代码来绘制json / ajax请求中的数据

function plotit(data){
        $.jqplot.config.enablePlugins = true;
        $("#jqplot-chart1").empty();
           plot1 = $.jqplot('jqplot-chart1', data,{ 
               axesDefaults: { pad: 1.2},
                title: 'data',
                animate: true,
                animateReplot: true,
                 axes: {
                    xaxis: {
                          label: "---",
                          tickOptions: {formatString: '%d-%m-%Y'}, // ex 02-09-2002,23:09:55 - %d
                          renderer: $.jqplot.DateAxisRenderer
                        },
                        yaxis: {
                            label: "Y "
                        }
                },
                cursor:{ 
                    zoom: true,
                    showTooltip : true,
                    constrainZoomTo : 'x',
                    showVerticalLine : true
                }
          } 
    ); 
    }

这是json响应数据的一个示例:

[[["2013-03-02 00:00:00","2"],["2013-03-01 00:00:00","72"],["2013-02-28 00:00:00","26"],["2013-02-27 00:00:00","67"],["2013-02-26 00:00:00","48"],["2013-02-25 00:00:00","50"]]]

但是当我绘制基本上我有两个问题: - 首先是绘图顶部和最大值之间的填充是巨大的,我想动态调整绘图的高度(图中的红色箭头) 第二个是右边的最后一个值附加到绘图的边框(图中的蓝色箭头) ![绘图结果] [1]

任何人都可以帮助我吗?

这是解释问题的图像:

http://img7.imageshack.us/img7/963/sanstitrebtt.png

1 个答案:

答案 0 :(得分:2)

使用以下方法渲染后,您可以获取dataBounds值:

var minY = plot2.axes.yaxis._dataBounds.min;
var maxY = plot2.axes.yaxis._dataBounds.max;

(您可以使用xaxis同样获得minX和maxX。)

然后你可以让jqplot使用这个界限来绘制确切的范围:

plot2.axes.yaxis.min = minY;
plot2.axes.yaxis.max = maxY;

(再次对xaxis采取类似行动);

最后,重新绘制图表:plot2.replot();

您的最终图表已根据您的数据值进行了界限。

PS:您可以使用plot2.yaxis._numberTicks或plot2.yaxis.numberTicks(不确定哪一个有效)来处理 numberTicks

查看类似帖子here