1

我使用 jqPlot 制作了一个饼图,饼图确实渲染了,我的代码在下面提到

var plot4 = $.jqplot('pie', [[["none",10],["error",20],["click",30],["impression",40]]], {
        seriesDefaults:{
            renderer:$.jqplot.PieRenderer,
            rendererOptions:{ sliceMargin: 0 }
        },
        legend:{ show: true }     
    });

我面临的问题是,当我将鼠标悬停在饼图上时,我收到一条错误消息

B.axes[D[0]]._ticks[0] is undefined

在萤火虫控制台上。当我单击饼图的任何一个切片时,我会看到一个更奇怪的情况,即我单击的整个切片消失了。

在单击之前,饼图如下所示:-

原始饼图

在我点击棕色区域后,馅饼变成了如下所示的东西,甚至棕色切片也消失了。

没有棕色切片的饼图

请提供上述解决方案。我尝试了不同的配置,但工作正常。还让我告诉你我正在使用其他插件,例如此页面上的条形图和光标。

我在下面提到了我正在执行此操作的页面的整个源代码:-

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1">
<title>jqPlot Demo</title>
<!--[if IE]><script src="./js/excanvas.min.js"></script><![endif]-->
<script type="text/javascript" src="./js/jquery.min.js"></script>
<script type="text/javascript" src="./js/jquery.jqplot.js"></script>
<script type="text/javascript" src="./js/jqplot.cursor.min.js"></script>
<script type="text/javascript" src="./js/jqplot.dragable.min.js"></script>
<script type="text/javascript" src="./js/jqplot.trendline.min.js"></script>
<script type="text/javascript" src="./js/jqplot.barRenderer.min.js"></script>
<script type="text/javascript" src="./js/jqplot.pieRenderer.min.js"></script>
<script type="text/javascript" src="./js/jqplot.canvasAxisLabelRenderer.min.js"></script>
<script type="text/javascript" src="./js/jquery-ui.min.js"></script>
<link rel="stylesheet" href="./css/jquery.jqplot.min.css"/>
<link rel="stylesheet" href="./css/jqPlot.css"/>
<script>
$(document).ready(function(){
    $.jqplot.config.enablePlugins = true;
    var lineGraph=$.jqplot('chart',  [[[10, 2],[30,5.12],[50,13.1],[70,33.6],[90,85.9],[11,20.9]]],
            {
            title:'Exponential Line',
            axes:{yaxis:{min:0,max:100},xaxis:{min:0,max:100}},
            legend:{
                show:true,
                location:'se',
                xoffset:12,
                yoffset:0
                },
            grid:{
                    gridLineColor:'#F2F2F2',
                    background:'#FFFFFF',
                    borderWidth:1,
                    borderColor:'#BBBBBB',
                    shadow:true,
                    shadowAmgle:45,
                    shadowWidth:2,
                    shadowOffset:2,
                    shadowDepth:2
                    },
           cursor:{
                     style: 'pointer',
                     show:false,
                     showTooltip: true,
                     followMouse:true,
                     tooltipOffset:10,
                     tooltipLocation:'se'
                  },
           highlighter: {
                        lineWidthAdjust: 2.5,
                        sizeAdjust: 5,          
                        showTooltip: true,     
                        tooltipLocation: 'nw', 
                        fadeTooltip: true,     
                        tooltipFadeSpeed: "fast",
                        tooltipOffset: 2,       
                        tooltipAxes: 'both',   
                        tooltipSeparator: ', ',
                        useAxesFormatters: true,
                        tooltipFormatString: '%.5P'
                    },
           seriesDefaults:{
                       trendline:{
                                show:true,
                                color:'#A2D379',
                                lable:'trendX',
                                lineWidth:2,
                                shadow:true
                                    },
                       color:'#058DC7',
                       lineWidth:5,
                       fill:true,
                       fillAndStroke:true,
                       fillColor:'#E6F4F9'
                       }

            });
    var plot4 = $.jqplot('pie', [[["none",10],["error",20],["click",30],["impression",40]]], {
        seriesDefaults:{
            renderer:$.jqplot.PieRenderer,
            rendererOptions:{ sliceMargin: 0 }
        },
        legend:{ show: true },
        cursor: {   
            show: false   
        }
    });
});
$('document').ready(function(){
        $('.column').sortable({
            connectWith:'.column',
            handle:'h2',
            cursor:'move',
            placeholder:'placeholder',
            forcePlaceholderSize:true,
            opacity:0.4,
            revert:true

        }).disableSelection();
}


    );
</script>
</head>
<body>
 <div class="column" id="column1">
        <div class="dragbox" id="item1" >
            <h2>Handle 1</h2>
            <div class="dragbox-content" >
                <div id="chart" style="width:100%;height:100%;float:left"></div>
            </div>
        </div>
 </div>
 <div class="column" id="column1">
        <div class="dragbox" id="item1" >
            <h2>Handle 1</h2>
            <div class="dragbox-content" >
                <div id="pie" style="width:100%;height:100%;float:left"></div>
            </div>
        </div>
 </div>
 <div class="column" id="column1">
        <div class="dragbox" id="item1" >
            <h2>Handle 1</h2>
            <div class="dragbox-content" >
                <div id="chart1" style="width:400px;height:300px;float:left"></div>
            </div>
        </div>
 </div>


<div id="barRender" style="width:400px;height:300px;float:left"></div>
</body>
</html>
4

2 回答 2

4

好的,我得到了问题的答案。我们只需要删除一行代码,然后一切正常

 $.jqplot.config.enablePlugins = true;

当我删除上述内容时,我会在需要时和在任何需要的地方调用单个插件。当此语句存在时,所有插件都已启用,这就是奇怪输出的原因。

于 2012-05-23T12:58:23.117 回答
0

对于您的部分问题,您缺少荧光笔插件。如果添加它,它可以很好地拖动折线图上的点。它不会抛出异常,但由于某种原因,拖动看起来很难看。我检查了一下,如果你禁用它看起来并不难看fillseriesDefaults显然它们有一些冲突。

正如我所观察到的,饼图没有链接可拖动脚本,因为它在禁用时表现良好。

编辑:

我想出了如何为 @Shiv Kumar Ganesh 用来解决问题的特定插件启用可拖动。 在这里展示。重要的是:设置isDragable: trueseriesshow: truehighlighter

于 2012-05-23T12:01:40.303 回答