Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/401.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript d3饼图未显示所有标签_Javascript_D3.js - Fatal编程技术网

Javascript d3饼图未显示所有标签

Javascript d3饼图未显示所有标签,javascript,d3.js,Javascript,D3.js,我正在尝试一个简单的饼图,里面有标签。我可以显示标签,但不能全部显示。e、 g.在示例代码中,我有Rick 5%,Paul 4%和Steve 3%没有显示,因为切片很小。我怎样才能克服这个问题 <html> <head> <meta http-equiv="Content-type" content="text/html; charset=utf-8"> <title>Testing Pie Chart</title&

我正在尝试一个简单的饼图,里面有标签。我可以显示标签,但不能全部显示。e、 g.在示例代码中,我有Rick 5%,Paul 4%和Steve 3%没有显示,因为切片很小。我怎样才能克服这个问题

<html>
<head>    
    <meta http-equiv="Content-type" content="text/html; charset=utf-8">
    <title>Testing Pie Chart</title>
    <!--<script type="text/javascript" src="d3/d3.v2.js"></script>-->
    <script src="../js/d3.min.js" type="text/javascript"></script>
    <style type="text/css">

        #pieChart {    
            position:absolute;
            top:10px;
            left:10px;
            width:400px;
            height: 400px; 
        }

        #lineChart {    
            position:absolute;
            top:10px;
            left:410px;
            height: 150px;
        }

        #barChart {
            position:absolute;
            top:160px;
            left:410px;
            height: 250px;
        }

        .slice {
            font-size: 8pt;
            font-family: Verdana;
            fill: white; //svg specific - instead of color
            font-weight: normal ;   
        } 

        /*for line chart*/
        .axis path, .axis line {
            fill: none;
            stroke: black;
            shape-rendering: crispEdges; //The shape-rendering property is an SVG attribute, used here to make sure our axis and its tick mark lines are pixel-perfect. 
        }

        .line {
            fill: none;
            /*stroke: steelblue;*/
            stroke-width: 3px;
        }

        .dot {
            /*fill: white;*/
            /*stroke: steelblue;*/
            stroke-width: 1.5px;
        }


        .axis text {
            font-family: Verdana;
            font-size: 11px;
        }

        .title {
            font-family: Verdana;
            font-size: 15px;    

        }

        .xAxis {
            font-family: verdana;
            font-size: 11px;
            fill: black;
        }  

        .yAxis {
            font-family: verdana;
            font-size: 11px;
            fill: white;
        }


        table {
            border-collapse:collapse;
            border: 0px;    
            font-family: Verdana;   
            color: #5C5558;
            font-size: 12px;
            text-align: right;          
        }

        td {
            padding-left: 10px;     
        }

        #lineChartTitle1 {
            font-family: Verdana;
            font-size  : 14px;
            fill       : lightgrey;
            font-weight: bold;
            text-anchor: middle;
        }

        #lineChartTitle2 {
            font-family: Verdana;
            font-size  : 72px;
            fill       : grey;
            text-anchor: middle;
            font-weight: bold;
            /*font-style: italic;*/
        }

    </style>

</head>
<body>

        var formatAsPercentage = d3.format("%"),
                formatAsPercentage1Dec = d3.format(".1%"),
                formatAsInteger = d3.format(","),
                fsec = d3.time.format("%S s"),
                fmin = d3.time.format("%M m"),
                fhou = d3.time.format("%H h"),
                fwee = d3.time.format("%a"),
                fdat = d3.time.format("%d d"),
                fmon = d3.time.format("%b")
                ;


        function dsPieChart() {

            var dataset = [
                {category: "Tom", measure: 0.30},
                {category: "John", measure: 0.30},
                {category: "Martin", measure: 0.30},
                {category: "Sam", measure: 0.30},
                {category: "Peter", measure: 0.25},
                {category: "Johannes", measure: 0.15},
                {category: "Rick", measure: 0.05},
                {category: "Lenny", measure: 0.18},
                {category: "Paul", measure: 0.04},
                {category: "Steve", measure: 0.03}
            ]
                    ;

            var width = 400,
                    height = 400,
                    outerRadius = Math.min(width, height) / 2,
                    innerRadius = outerRadius * .999,
                    // for animation
                    innerRadiusFinal = outerRadius * .5,
                    innerRadiusFinal3 = outerRadius * .45,
                    color = d3.scale.category20()    //builtin range of colors
                    ;

            var vis = d3.select("#pieChart")
                    .append("svg:svg")              
                    .data([dataset])                  
                    .attr("width", width)          
                    .attr("height", height)
                    .append("svg:g")                
                    .attr("transform", "translate(" + outerRadius + "," + outerRadius + ")")   
                    ;

            var arc = d3.svg.arc()             
                    .outerRadius(outerRadius).innerRadius(innerRadius);

            // for animation
            var arcFinal = d3.svg.arc().innerRadius(innerRadiusFinal).outerRadius(outerRadius);
            var arcFinal3 = d3.svg.arc().innerRadius(innerRadiusFinal3).outerRadius(outerRadius);

            var pie = d3.layout.pie()           
                    .value(function (d) {
                        return d.measure;
                    });   

            var arcs = vis.selectAll("g.slice")     
                    .data(pie)                          
                    .enter()                            
                    .append("svg:g")                
                    .attr("class", "slice")    
                    .on("mouseover", mouseover)
                    .on("mouseout", mouseout)
                    .on("click", up)
                    ;

            arcs.append("svg:path")
                    .attr("fill", function (d, i) {
                        return color(i);
                    }) 
                    .attr("d", arc)     
                    .append("svg:title") 
                    .text(function (d) {
                        return d.data.category + ": " + formatAsPercentage(d.data.measure);
                    });

            d3.selectAll("g.slice").selectAll("path").transition()
                    .duration(750)
                    .delay(10)
                    .attr("d", arcFinal)
                    ;

            arcs.filter(function (d) {
                return d.endAngle - d.startAngle > .2;
            })
                    .append("svg:text")
                    .attr("dy", ".35em")
                    .attr("text-anchor", "middle")
                    .attr("transform", function (d) {
                        return "translate(" + arcFinal.centroid(d) + ")rotate(" + angle(d) + ")";
                    })

                    .text(function (d) {
                        return d.data.category;
                    })
                    ;

            function angle(d) {
                var a = (d.startAngle + d.endAngle) * 90 / Math.PI - 90;
                return a > 90 ? a - 180 : a;
            }


            // Pie chart title          
            vis.append("svg:text")
                    .attr("dy", ".35em")
                    .attr("text-anchor", "middle")
                    .text("Revenue Share 2012")
                    .attr("class", "title")
                    ;


            function mouseover() {
                d3.select(this).select("path").transition()
                        .duration(750)
                        //.attr("stroke","red")
                        //.attr("stroke-width", 1.5)
                        .attr("d", arcFinal3)
                        ;
            }

            function mouseout() {
                d3.select(this).select("path").transition()
                        .duration(750)
                        //.attr("stroke","blue")
                        //.attr("stroke-width", 1.5)
                        .attr("d", arcFinal)
                        ;
            }

            function up(d, i) {

                updateBarChart(d.data.category, color(i));
                updateLineChart(d.data.category, color(i));

            }
        }

        dsPieChart();


    </script>
</body>

测试饼图
#图{
位置:绝对位置;
顶部:10px;
左:10px;
宽度:400px;
高度:400px;
}
#线形图{
位置:绝对位置;
顶部:10px;
左:410像素;
高度:150像素;
}
#柱状图{
位置:绝对位置;
顶部:160px;
左:410像素;
高度:250px;
}
.切片{
字号:8pt;
字体系列:Verdana;
填充:白色;//svg特定-而不是颜色
字体大小:正常;
} 
/*用于折线图*/
.轴路径,.轴线{
填充:无;
笔画:黑色;
shape rendering:CrispEdge;//shape rendering属性是一个SVG属性,用于确保轴及其记号线是像素级的。
}
.线路{
填充:无;
/*笔画:钢蓝*/
笔画宽度:3px;
}
多特先生{
/*填充物:白色*/
/*笔画:钢蓝*/
笔划宽度:1.5px;
}
.轴文本{
字体系列:Verdana;
字体大小:11px;
}
.头衔{
字体系列:Verdana;
字体大小:15px;
}
xAxis先生{
字体系列:verdana;
字体大小:11px;
填充:黑色;
}  
亚克斯先生{
字体系列:verdana;
字体大小:11px;
填充物:白色;
}
桌子{
边界塌陷:塌陷;
边界:0px;
字体系列:Verdana;
颜色:#5C5558;
字体大小:12px;
文本对齐:右对齐;
}
运输署{
左侧填充:10px;
}
#线形图标题1{
字体系列:Verdana;
字体大小:14px;
填充物:浅灰色;
字体大小:粗体;
文本锚定:中间;
}
#线形图标题2{
字体系列:Verdana;
字体大小:72px;
填充物:灰色;
文本锚定:中间;
字体大小:粗体;
/*字体:斜体*/
}
var formatAsPercentage=d3.format(“%”),
formatAsPercentage1Dec=d3.format(“.1%”),
formatAsInteger=d3.format(“,”),
fsec=d3.time.format(“%S”),
fmin=d3.time.format(“%M”),
fhou=d3.time.format(“%H”),
fwee=d3.time.format(“%a”),
fdat=d3.time.format(“%d”),
fmon=d3.time.format(“%b”)
;
函数dsPieChart(){
变量数据集=[
{类别:“汤姆”,测量值:0.30},
{类别:“约翰”,衡量标准:0.30},
{类别:“马丁”,测量值:0.30},
{类别:“Sam”,测量值:0.30},
{类别:“彼得”,计量单位:0.25},
{类别:“约翰”,计量:0.15},
{类别:“瑞克”,测量值:0.05},
{类别:“Lenny”,度量值:0.18},
{类别:“保罗”,衡量标准:0.04},
{类别:“史蒂夫”,测量值:0.03}
]
;
可变宽度=400,
高度=400,
外层=数学最小值(宽度、高度)/2,
内半径=外半径*.999,
//动画
内半径最终=外半径*.5,
内半径FINAL3=外半径*.45,
color=d3.scale.category20()//内置颜色范围
;
var vis=d3。选择(“pieChart”)
.append(“svg:svg”)
.data([数据集])
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.append(“svg:g”)
.attr(“转换”、“转换”(“+outerRadius+”,“+outerRadius+”))
;
var arc=d3.svg.arc()
.outerRadius(outerRadius)。innerRadius(innerRadius);
//动画
var arcfail=d3.svg.arc().innerRadius(innerRadiusFinal).outerRadius(outerRadius);
var arcFinal3=d3.svg.arc().innerRadius(innerRadiusFinal3).outerRadius(outerRadius);
var pie=d3.layout.pie()
.价值(功能(d){
返回d.measure;
});   
var arcs=vis.selectAll(“g.slice”)
.数据(pie)
.输入()
.append(“svg:g”)
.attr(“类”、“切片”)
.on(“鼠标悬停”,鼠标悬停)
.on(“mouseout”,mouseout)
。打开(“单击”,向上)
;
arcs.append(“svg:path”)
.attr(“填充”,函数(d,i){
返回颜色(i);
}) 
.attr(“d”,弧)
.append(“svg:title”)
.文本(功能(d){
返回d.data.category+“:”+formatAsPercentage(d.data.measure);
});
d3.selectAll(“g.slice”).selectAll(“path”).transition()
.持续时间(750)
arcs.filter(function (d) {
    return d.endAngle - d.startAngle > .2;
})
.append("svg:text")...
    arcs.filter(function (d) {
        return d.endAngle - d.startAngle > .2;
    })