Pages

Wednesday, 27 November 2024

Pie Chart Maker Tool

Pie Chart Maker Tool

Pie Chart Maker Tool

Enter the values and labels for the pie chart segments.

* { margin: 0; padding: 0; box-sizing: border-box; } body { font-family: Arial, sans-serif; background-color: #f4f7fc; color: #333; } .container { max-width: 1200px; margin: 0 auto; padding: 20px; } header { text-align: center; margin-bottom: 40px; } h1 { font-size: 2.5rem; color: #2c3e50; } input, button { width: 100%; padding: 12px; margin: 10px 0; border: 2px solid #ddd; border-radius: 5px; font-size: 1rem; } button { background-color: #3498db; color: white; border: none; cursor: pointer; } button:hover { background-color: #2980b9; } .input-form { width: 100%; max-width: 600px; margin: 0 auto; } .form-group { margin-bottom: 20px; } .chart-container { width: 100%; max-width: 800px; margin: 0 auto; } canvas { width: 100% !important; height: 400px !important; } // Create the Pie chart on initial load const ctx = document.getElementById('pieChart').getContext('2d'); let pieChart = new Chart(ctx, { type: 'pie', data: { labels: ['Sample Label 1', 'Sample Label 2', 'Sample Label 3'], datasets: [{ data: [40, 30, 30], backgroundColor: ['#e74c3c', '#f39c12', '#2ecc71'], borderColor: '#fff', borderWidth: 2 }] }, options: { responsive: true, plugins: { legend: { position: 'top', }, tooltip: { callbacks: { label: function(tooltipItem) { return tooltipItem.label + ': ' + tooltipItem.raw + '%'; } } } } } }); // Event listener for form submission document.getElementById('chartForm').addEventListener('submit', function(e) { e.preventDefault(); const labelsInput = document.getElementById('labels').value; const valuesInput = document.getElementById('values').value; const labels = labelsInput.split(',').map(label => label.trim()); const values = valuesInput.split(',').map(value => parseFloat(value.trim())); // Validate inputs if (labels.length !== values.length) { alert('Please ensure the number of labels and values are equal.'); return; } // Update the pie chart pieChart.data.labels = labels; pieChart.data.datasets[0].data = values; // Generate random colors for each segment pieChart.data.datasets[0].backgroundColor = values.map(() => getRandomColor()); pieChart.update(); }); // Function to generate random colors for pie chart segments function getRandomColor() { const letters = '0123456789ABCDEF'; let color = '#'; for (let i = 0; i < 6; i++) { color += letters[Math.floor(Math.random() * 16)]; } return color; }