0

我有以下代码来绘制来自 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

4

1 回答 1

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 (不确定哪个有效)

在此处查看类似的帖子

于 2013-03-15T15:02:07.313 回答