我有以下代码来绘制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]
任何人都可以帮助我吗?
这是解释问题的图像:
答案 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