You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 

296 lines
9.0 KiB

// amcharts
// import '/amcharts_4.10.38/core.js'
// import '/amcharts_4.10.38/charts.js'
// import '/amcharts_4.10.38/themes/dark.js'
let am4core = window.am4core;
let am4charts = window.am4charts;
let am4themes_animated = window.am4themes_animated;
let am4themes_dark = window.am4themes_dark;
am4core.useTheme(am4themes_dark);
let chart = am4core.create("chartdiv", am4charts.PieChart3D);
chart.colors.list = [
am4core.color("#f5576b"),
am4core.color("#3FED95"),
am4core.color("#004FD3"),
am4core.color("#DE5389"),
am4core.color("#FF7BAB"),
am4core.color("#A9ED39"),
am4core.color("#49BAF0"),
am4core.color("#C139ED"),
am4core.color("#FFDE7F"),
am4core.color("#00BBBA")
];
chart.legend = new am4charts.Legend();
// 設定圖例的位置
chart.legend.position = "bottom"; // 可選值有 "left", "right", "top", "bottom"
chart.legend.valign = "middle"; // 可選值有 "top", "middle", "bottom"
// 設定圖例的間距
// chart.legend.paddingTop = 10; // 上方間距
// chart.legend.paddingRight = 12; // 右側間距
// chart.legend.paddingBottom = 10; // 下方間距
// chart.legend.paddingLeft = 12; // 左側間距
// 設定圖例的背景顏色和邊框
// chart.legend.background.fill = am4core.color("#f5f5f5"); // 背景顏色
// chart.legend.background.stroke = am4core.color("#d1d1d1"); // 邊框顏色
// chart.legend.background.strokeWidth = 1; // 邊框寬度
// chart.legend.background.cornerRadius = 8; // 背景圓角
// 設定圖例標籤的樣式
// chart.legend.labels.template.fontSize = 12; // 字體大小
// chart.legend.labels.template.fill = am4core.color("#555555"); // 字體顏色
// 設定圖例標記的大小
// chart.legend.markers.template.width = 20;
// chart.legend.markers.template.height = 20;
// 如果您想要更改標記的形狀,例如使用圓形而不是方形
// chart.legend.markers.template.circle.stroke = am4core.color("#ff0000");
// chart.legend.markers.template.circle.fill = am4core.color("#ff0000");
chart.data = [{
"violationtype": "Lithuania",
"litres": 501.9,
"color": am4core.color("#f5576b")
}, {
"violationtype": "Czech Republic",
"litres": 301.9,
"color": am4core.color("#3FED95")
}, {
"violationtype": "Ireland",
"litres": 201.1,
"color": am4core.color("#004FD3")
}, {
"violationtype": "Germany",
"litres": 165.8,
"color": am4core.color("#DE5389")
}, {
"violationtype": "Australia",
"litres": 139.9,
"color": am4core.color("#FF7BAB")
}, {
"violationtype": "Austria",
"litres": 128.3,
"color": am4core.color("#A9ED39")
}, {
"violationtype": "UK",
"litres": 99,
"color": am4core.color("#49BAF0")
}, {
"violationtype": "Belgium",
"litres": 60,
"color": am4core.color("#C139ED")
}, {
"violationtype": "The Netherlands",
"litres": 50,
"color": am4core.color("#FFDE7F")
}, {
"violationtype": "The Netherlands2",
"litres": 50,
"color": am4core.color("#00BBBA")
}];
chart.innerRadius = am4core.percent(0);
let pieSeries = chart.series.push(new am4charts.PieSeries3D());
function drawPie(data) {
// 清除舊的圓餅圖
chart.data = [];
data.forEach((item, index) => {
item.color = chart.colors.list[index];
});
chart.data = data;
// 設定邊框顏色、線條粗細和填充顏色
pieSeries.slices.template.stroke = am4core.color("#ffffff");
pieSeries.slices.template.strokeWidth = 2;
// pieSeries.slices.template.adapter.add("fill", function (fill, target) {
// if (target.dataItem && target.dataItem.dataContext && target.dataItem.dataContext.color) {
// return target.dataItem && target.dataItem.dataContext && target.dataItem.dataContext.color ? target.dataItem.dataContext.color : fill;
// }
// // If not, use the next color from the chart's color list
// return chart.colors.next();
// });
pieSeries.slices.template.adapter.add("fill", function (fill, target) {
// Check if the data item has a color property
if (target.dataItem && target.dataItem.dataContext && target.dataItem.dataContext.color) {
return target.dataItem.dataContext.color;
}
// If not, use the color from the chart's color list based on the data item's index
return chart.colors.list[target.dataItem.index % chart.colors.list.length];
});
// 隱藏鼠標移入圓餅圖時的數據
// pieSeries.slices.template.tooltipText = "";
// 圓餅圖周圍的數據(常態顯示)
// pieSeries.labels.template.disabled = true;
// 圓餅圖周圍的數據(常態顯示) 的線條
// pieSeries.ticks.template.disabled = true;
pieSeries.dataFields.value = "count";
pieSeries.dataFields.category = "violationtype";
pieSeries.dataFields.color = "color";
}
// --------------------------------------------------
// Bar chart
// Create chart instance
// let chart2 = am4core.create("chartdiv2", am4charts.XYChart);
// Add data & color
// --------------------------------------------------
// Highcharts
// import '/Highcharts-11.1.0/code/highcharts.js'
// import '/Highcharts-11.1.0/code/highcharts-3d.js'
// import '/Highcharts-11.1.0/code/modules/exporting.js'
// import '/Highcharts-11.1.0/code/modules/export-data.js'
// import '/Highcharts-11.1.0/code/modules/accessibility.js'
// // Example to create a simple line chart in a div#pie:
// Highcharts.chart("pie", {
// chart: {
// type: "pie",
// options3d: {
// enabled: true,
// alpha: 45
// }
// },
// title: {
// useHTML: true,
// text: "<span class='pie_title'></span>"
// },
// subtitle: {
// // text: "As per statistics data 2016"
// },
// plotOptions: {
// pie: {
// innerSize: 100,
// depth: 65,
// allowPointSelect: false,
// cursor: "pointer",
// dataLabels: {
// enabled: true,
// format: "{point.name} ({point.percentage:.1f}%)",
// connectorWidth: 2
// },
// borderColor: null,
// borderWidth: 0 // < set this option
// }
// },
// colors: ["#3b5998", "#d34836", "#8a3ab9", "#0077B5", "#0084b4", "#bb0000"],
// series: [
// {
// name: "Million user",
// data: [
// ["Facebook", 1300],
// ["Google+", 375],
// ["Instagram", 500],
// { name: "LinkedIn", y: 450, sliced: false, selected: false },
// ["Twitter", 313],
// ["YouTube", 1000]
// ]
// }
// ],
// tooltip: {
// useHTML: true,
// // formatter: () => {
// // console.log()
// // return `
// // <span style="color:white">
// // <h1>{point.key}</h1>
// // <h4>{point.percentage:.1f} {series.name} </h4>
// // </span>
// // `;
// // },
// headerFormat: "<h1 class='pie_title'>{point.key}</h1>",
// pointFormat: "<h4 class='pie_content'>{point.percentage:.1f} {series.name} </h4>"
// }
// });
// // Bar chart
// Highcharts.chart('bar', {
// chart: {
// type: 'column'
// },
// title: {
// text: 'Corn vs wheat estimated production for 2020',
// align: 'left'
// },
// subtitle: {
// text:
// 'Source: <a target="_blank" ' +
// 'href="https://www.indexmundi.com/agriculture/?commodity=corn">indexmundi</a>',
// align: 'left'
// },
// xAxis: {
// categories: ['USA', 'China', 'Brazil', 'EU', 'India', 'Russia'],
// crosshair: true,
// accessibility: {
// description: 'Countries'
// }
// },
// yAxis: {
// min: 0,
// title: {
// text: '1000 metric tons (MT)'
// }
// },
// tooltip: {
// valueSuffix: ' (1000 MT)'
// },
// plotOptions: {
// column: {
// pointPadding: 0.2,
// borderWidth: 0
// }
// },
// series: [
// {
// name: 'Corn',
// data: [406292, 260000, 107000, 68300, 27500, 14500]
// },
// {
// name: 'Wheat',
// data: [51086, 136000, 5500, 141000, 107180, 77000]
// }
// ]
// });
// --------------------------------------------------
// Google charts
// import '/js/v2/charts_loader.js'
// google.charts.load('current', { 'packages': ['corechart'] });
// google.charts.setOnLoadCallback(drawPieChart);
// function drawPieChart() {
// let data = google.visualization.arrayToDataTable([
// ['Task', 'Hours per Day'],
// ['Work', 8],
// ['Eat', 2],
// ['TV', 4],
// ['Gym', 2],
// ['Sleep', 8]
// ]);
// let options = {
// title: 'My Daily Activities',
// legend: 'bottom',
// is3D: true,
// height: 350,
// };
// let chart = new google.visualization.PieChart(document.getElementById('pieChart'));
// chart.draw(data, options);
// }
// --------------------------------------------------