2

我正在使用以下代码在jqPlot. 但是,我遇到了两个问题:

  1. xaxis 范围值的任何一侧都没有填充。pad 属性似乎没有效果。

  2. 当条的数量很大时,条相互重叠。barPadding 属性似乎没有效果。

我查看了这个链接有 jqPlot bar chart 的问题。答案建议使用CategoryAxisRenderer. 但由于我使用的是时间序列数据,因此我需要DateAxisRenderer.

请帮忙。

function plotBarGraph(data,myticks,series)
{
    $("#placeholder").empty();
    $.jqplot('placeholder',data,
            {
                //stackSeries:true,
                    seriesDefaults:{ 
                        renderer:$.jqplot.BarRenderer,
                        barMargin:1,
                        barPadding:0.5
                    },
                   axes:
                        {
                        xaxis:
                            {
                            ticks:myticks,
                            tickInterval:10,
                            renderer:$.jqplot.DateAxisRenderer,
                            pad:2.5,
                            tickOptions:
                                {
                                formatString:'%d-%m-%y'
                                }
                            }
                        },
                        legend:
                            {
                            show:true,
                            labels:series
                            }     
            });
}
4

3 回答 3

1

在这种情况下,如果您不想使用链接中提到的方法,您可能希望使用日期轴的最小/最大值。

我认为您可能还会发现解决类似填充问题的方法很有用,我选择在创建时设置刻度并在绘制绘图后隐藏不需要的刻度。

在我可以提供任何进一步的帮助之前,请提供一个展示您的问题的样本。

于 2012-06-13T09:24:14.070 回答
0

对于您的第二个问题,我遇到了类似的问题。我设置了一个选择语句,根据图表中的柱数来扩大图表的大小。然后我使父 div 可滚动(称为“dataHolder”),这解决了问题。

        // set div properties depending on how many sets of data are in the 
        //array so the view is sized properly
        $("#chartDiv").html("").css("width", "750px"); // chartDiv's default settings
        $("#tabs-6").removeClass("dataHolder").css("width", "900px"); // parent Div's default settings
        if (dataArray.length > 10) {
            $("#chartDiv").css("width", "1600px");
            $("#tabs-6").addClass("dataHolder").css("width", "900px");
        } else if (dataArray.length > 6) {
            $("#chartDiv").css("width", "1200px");
            $("#tabs-6").addClass("dataHolder").css("width", "900px");
        }
于 2012-08-21T21:02:15.717 回答
0

我找到了将 Date 数据与 CategoryAxisRenderer 一起使用的解决方案。您必须按如下方式配置 de xaxis:

axes: {
        xaxis: {
            renderer: $.jqplot.CategoryAxisRenderer,
            rendererOptions: {
                tickRenderer: $.jqplot.DateTickRenderer,
                tickOptions: {
                    formatter: $.jqplot.DateTickFormatter,
                    formatString:'%d/%m'
                }
            }
        }
    }

我希望它有帮助!;)

于 2013-06-19T14:51:43.230 回答