【问题标题】:amcharts pie chart code not workingamcharts饼图代码不起作用
【发布时间】:2018-03-12 19:06:16
【问题描述】:

我是 javascript 新手,我用 amcharts 库编写了制作饼图的代码。但是代码不起作用。怎么了?你能帮助我吗。如何修复我的代码?

这是我的库 js

<html>
<title>Pie Chart Trying</title>
<meta charset="utf-8" />
<script src="https://www.amcharts.com/lib/3/amcharts.js"></script>
<script src="https://www.amcharts.com/lib/3/pie.js"></script>
<script src="https://www.amcharts.com/lib/3/plugins/export/export.min.js"></script>
<link rel="stylesheet" href="https://www.amcharts.com/lib/3/plugins/export/export.css" type="text/css" media="all" />
<script src="https://www.amcharts.com/lib/3/themes/light.js"></script>`enter code here`

<div id="chartdiv"></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>


<script>
    $.get("http://localhost:8080/cinsiyet",


           function (data, status) {

               var turlerVeSayilar = { Memur: 0, işçi: 0, Sözleşmeli: 0, Geçici: 0, Firma: 0, Meclis: 0, Stajyer: 0, GeçiciMemur: 0, Diğer: 0 }
               var personelTurVeSayilar = [];
               $.each(data, function (index, item) {

                   switch (item.turu) {
                       case 'M':
                           turlerVeSayilar['Memur']++;
                           break;
                       case 'I':
                           turlerVeSayilar['İşçi']++;
                           break;
                       case 'S':
                           turlerVeSayilar['Sözleşmeli']++;
                           break;
                       case 'G':
                           turlerVeSayilar['Geçici']++;
                           break;
                       case 'F':
                           turlerVeSayilar['Firma']++;
                           break;
                       case 'L':
                           turlerVeSayilar['Meclis']++;
                           break;
                       case 'O':
                           turlerVeSayilar['Stajyer']++;
                           break;
                       case 'C':
                           turlerVeSayilar['GeçiciMemur']++;
                           break;
                       case 'D':
                           turlerVeSayilar['Diger']++;
                           break;
                   }
               });

               $.each(turlerVeSayilar, function (index, item) {
                   newitem = {}
                   newitem["tur"] = index; 
                   newitem["sayi"] = item
                   personelTurVeSayilar.push(newitem); 

                   //{tur: "memur", sayi: 3}
                   //{tur: "isci", sayi: 0}
                   //{tur: "sozlesmeli", sayi: 0}
                   //{tur: "gecici", sayi: 0}
                   //{tur: "firma", sayi: 2}
                   //{tur: "meclis", sayi: 0}
                   //{tur: "stajyer", sayi: 0}
                   //{tur: "geciciMemur", sayi: 0}
                   //{tur: "diger", sayi: 0}
               });

               var chart= AmCharts.makeChart("chartdiv",
                   {
                       "type": "pie",
                       "theme": "light",
                       //"categoryField": "tur",
                       //"rotate": true,

                       "valueField": "sayi",
                       "titleField": "tur",
                       "outlineAlpha": 0.4,
                       "depth3D": 15,
                       "balloonText": "[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>",
                       "angle": 30,
                       "export": {
                           "enabled": true,
                           "startDuration": 1,
                           "labelRadius": 15,
                           "colors": [
                               "#FF0F00",
                               "#FF6600",
                               "#FF9E01",
                               "#FCD202",
                               "#4876ff",
                               "#B0DE09",
                               "#04D215",
                               "#0D8ECF",
                               "#0D52D1",
                               "#2A0CD0",
                               "#8A0CCF",
                               "#CD0D74",
                               "#754DEB",
                               "#DDDDDD",
                               "#999999",
                               "#333333",
                               "#000000",
                               "#57032A",
                               "#CA9726",
                               "#990000",
                               "#4B0C25",


                           ],
                           "legend": {
                               "enabled": true,
                               "align": "center",
                               "markerType": "circle",
                               "balloon": {},
                               /*"titles": [
                                   {
                                       "id": "Title-1",
                                       "size": 15,
                                       "text": "Toplam Personel Sayısının Personel Türüne Göre Dağılımı"
                                   }
                               ], */

                               "dataProvider": personelTurVeSayilar,
                               "export": {
                                   "enabled": true
                               }
                           }
                       }
                   })
           })

</script>
</body>
</html>

【问题讨论】:

    标签: javascript count amcharts


    【解决方案1】:

    类似于my last answer about your dataLoader section,这次您的export 部分嵌套了太多属性并且它也被重复了。不要在 export 部分内嵌套不正确的属性 - colorsstartDurationlabelRadius legend 都不属于导出内部。除此之外,您将dataProviderballoontitles 以及另一个export 部分放在错误的位置;它们不是legend 属性,需要移动到对象的顶部。

    这里是固定代码:

    var chart = AmCharts.makeChart("chartdiv", {
      "type": "pie",
      "theme": "light",
      "valueField": "sayi",
      "titleField": "tur",
      "outlineAlpha": 0.4,
      "depth3D": 15,
      "balloonText": "[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>",
      "angle": 30,
      "startDuration": 1,
      "labelRadius": 15,
      "colors": [
        "#FF0F00",
        "#FF6600",
        "#FF9E01",
        "#FCD202",
        "#4876ff",
        "#B0DE09",
        "#04D215",
        "#0D8ECF",
        "#0D52D1",
        "#2A0CD0",
        "#8A0CCF",
        "#CD0D74",
        "#754DEB",
        "#DDDDDD",
        "#999999",
        "#333333",
        "#000000",
        "#57032A",
        "#CA9726",
        "#990000",
        "#4B0C25",
      ],
      "legend": {
        "enabled": true,
        "align": "center",
        "markerType": "circle",
      },
      "balloon": {},
      "dataProvider": personelTurVeSayilar,
    
      "titles": [{
        "id": "Title-1",
        "size": 15,
        "text": "Toplam Personel Sayısının Personel Türüne Göre Dağılımı"
      }],
      "export": {
        "enabled": true
      }
    })
    

    仔细将其与您的代码进行比较,看看有什么变化。我还建议您查看 AmCharts 网站上的 demo code

    这是一个使用您的代码的工作演示:

    var personelTurVeSayilar = [{
        tur: "memur",
        sayi: 3
      },
      {
        tur: "isci",
        sayi: 0
      },
      {
        tur: "sozlesmeli",
        sayi: 0
      },
      {
        tur: "gecici",
        sayi: 0
      },
      {
        tur: "firma",
        sayi: 2
      },
      {
        tur: "meclis",
        sayi: 0
      },
      {
        tur: "stajyer",
        sayi: 0
      },
      {
        tur: "geciciMemur",
        sayi: 0
      },
      {
        tur: "diger",
        sayi: 0
      }
    ];
    
    var chart = AmCharts.makeChart("chartdiv", {
      "type": "pie",
      "theme": "light",
      "valueField": "sayi",
      "titleField": "tur",
      "outlineAlpha": 0.4,
      "depth3D": 15,
      "balloonText": "[[title]]<br><span style='font-size:14px'><b>[[value]]</b> ([[percents]]%)</span>",
      "angle": 30,
      "startDuration": 1,
      "labelRadius": 15,
      "colors": [
        "#FF0F00",
        "#FF6600",
        "#FF9E01",
        "#FCD202",
        "#4876ff",
        "#B0DE09",
        "#04D215",
        "#0D8ECF",
        "#0D52D1",
        "#2A0CD0",
        "#8A0CCF",
        "#CD0D74",
        "#754DEB",
        "#DDDDDD",
        "#999999",
        "#333333",
        "#000000",
        "#57032A",
        "#CA9726",
        "#990000",
        "#4B0C25",
      ],
      "legend": {
        "enabled": true,
        "align": "center",
        "markerType": "circle",
      },
      "balloon": {},
      "dataProvider": personelTurVeSayilar,
    
      "titles": [{
        "id": "Title-1",
        "size": 15,
        "text": "Toplam Personel Sayısının Personel Türüne Göre Dağılımı"
      }],
      "export": {
        "enabled": true
      }
    })
    <script src="//www.amcharts.com/lib/3/amcharts.js"></script>
    <script src="//www.amcharts.com/lib/3/pie.js"></script>
    <script src="//www.amcharts.com/lib/3/plugins/export/export.min.js"></script>
    <link rel="stylesheet" href="//www.amcharts.com/lib/3/plugins/export/export.css">
    <div id="chartdiv" style="width: 100%; height: 400px"></div>

    【讨论】:

    • 非常感谢您的回复。终于可以画图了。我需要了解编写代码的逻辑。非常感谢您的帮助!
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多