【问题标题】:JqPlot Display Trendline over barchartJqPlot 在条形图上显示趋势线
【发布时间】:2014-07-10 09:20:21
【问题描述】:

我使用下面的代码使用 jqplot 显示条形图。但即使我指定 trendline : { show : true },我也无法在条形图上绘制趋势线。

References I have used

    <script type="text/javascript" src="js/jqplot/jquery.jqplot.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.barRenderer.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.pieRenderer.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.categoryAxisRenderer.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.pointLabels.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.canvasTextRenderer.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.canvasAxisLabelRenderer.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.dateAxisRenderer.min.js"></script>
    <link href="Css/blitzer/jquery-ui.css" rel="stylesheet" />
    <script src="Js/jqplot/jqplot.cursor.min.js"></script>
    <script src="Js/jqplot/jqplot.highlighter.min.js"></script>

Code:
 var AppleArray=[];
 var OrangeArray = [];
 var GrapeArray = [] ;
 var MangoArray =[];
 var PomegranateArray = [];
 var xAxisTicks =[];//It would be 00:01:03,02:01:03,04:01:04,06:01:04,08:01:04,10:01:03,12:01:03,14:01:03,16:01:06,18:01:04,20:01:05,22:01:08

 for(var Count = 0; Count < JsonResponse.length ;Count++)
 {
     //Fill the AppleArray,OrangeArray ,GrapeArray ,MangoArray ,Pomovalues from Json                  response
 }

 var TypeArray = [AppleArray, OrangeArray, GrapeArray, MangoArray, PomegranateArray];
 //Final TypeArray dynamic Value would be 1047,1049,1045,1046,1046,1046,1077,1048,1045,1046,1047,1045,669,717,742,696,1277,905,728,740,704,722,753,2127,1102,1079,1105,1070,1120,1095,1085,1077,1088,1139,1953,1452,1583,1649,1596,1587,1523,1539,2025,1653,1581,1797,2039,2012,1240,1219,1235,1203,1147,1289,1105,1194,1117,1209,1152,1208 
 plot1 = $.jqplot('chart1', TypeArray, {
    // Only animate if we're not using excanvas (not in IE 7 or IE 8)..
    animate: !$.jqplot.use_excanvas,
    seriesDefaults: {
        renderer: $.jqplot.BarRenderer,
        pointLabels: { show: true },
        trendline: {show: true},
    },
    legend: {
        renderer: $.jqplot.EnhancedLegendRenderer,
        labels: legendLabels,
        show: true
    },
    axes: {
        xaxis: {
            renderer: $.jqplot.CategoryAxisRenderer,
            rendererOptions: {
                seriesToggleReplot: { resetAxes: true },
                drawBaseline: false
            },
            ticks: xAxisTicks
        },
        yaxis: {
            //min : 500,
            min: 100,
            //tickInterval : 500,
            max: 2500
        }
    },
    highlighter: { show: false }
});

此代码仅显示下面的条形图。不显示条形图上的趋势线。 如何在条形图上绘制趋势线?

【问题讨论】:

    标签: jqplot bar-chart


    【解决方案1】:

    您需要包含趋势线插件才能使用它:

    <script type="text/javascript" src="js/jqplot/jqplot.trendline.min.js"></script>
    <script type="text/javascript" src="js/jqplot/jqplot.enhancedLegendRenderer.min.js"></script>
    

    编辑:请查看工作示例here

    与您的代码的唯一区别是我删除了 legendLabels 调用以避免错误。数据数组是硬编码的。也许您的问题与您的数据创建(尤其是您的 TypeArray)有关 - TypeArray 必须是数组数组,而不是数组数组。

    【讨论】:

    • 仍然得到相同的输出:-(
    • 每个插件的路径是否正确?您可以使用诸如 Firebug 之类的调试器来判断您是否有错误?
    • 似乎一切都很好。我已经使用 firebug 和 fiddler 进行了验证。
    • 不要忘记增强的LegendRenderer(请参阅我上面的编辑)。再次检查您的路径,查看工作示例here。如果要显示特定系列的趋势线,则需要为该特定系列指定选项trendline:{show:true|false}
    • 将数组值转换为 int 后工作正常。 Javascript 将其视为字符串。这就是问题所在。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-22
    相关资源
    最近更新 更多