Download charts.js from TheGreatUnknown/Moduli-Stabilization: direct link, hf CLI and curl.
- Browser
- Download file 9.57 kB
-
https://huggingface.co/spaces/TheGreatUnknown/Moduli-Stabilization/resolve/main/charts.js
- Command line
-
hf download hf://spaces/TheGreatUnknown/Moduli-Stabilization/charts.js
-
curl -L -o charts.js https://huggingface.co/spaces/TheGreatUnknown/Moduli-Stabilization/resolve/main/charts.js
9.57 kB
| import { chartConfig } from './config.js'; | |
| // Import Chart.js as a module instead of individual components | |
| import 'https://cdn.jsdelivr.net/npm/chart.js@4.4.2/dist/chart.umd.js'; | |
| // Import annotation plugin | |
| import 'https://cdn.jsdelivr.net/npm/chartjs-plugin-annotation@3.0.1/dist/chartjs-plugin-annotation.min.js'; | |
| export function initCharts() { | |
| const { theme } = chartConfig; | |
| // Enhanced gradient with multiple color stops | |
| function createGradient(ctx) { | |
| const gradient = ctx.createLinearGradient(0, 0, 0, 400); | |
| gradient.addColorStop(0, 'rgba(75, 192, 192, 0.8)'); | |
| gradient.addColorStop(0.5, 'rgba(75, 192, 192, 0.3)'); | |
| gradient.addColorStop(1, 'rgba(75, 192, 192, 0.1)'); | |
| return gradient; | |
| } | |
| // Shared chart options with enhanced styling | |
| const chartOptions = { | |
| responsive: true, | |
| maintainAspectRatio: true, | |
| aspectRatio: 16/9, | |
| layout: { | |
| padding: { | |
| top: 20, | |
| right: 20, | |
| bottom: 40, | |
| left: 40 | |
| } | |
| }, | |
| plugins: { | |
| legend: { | |
| labels: { | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace", | |
| weight: 'bold' | |
| }, | |
| boxWidth: 40, | |
| usePointStyle: true, | |
| pointStyle: 'rectRounded' | |
| } | |
| } | |
| }, | |
| scales: { | |
| x: { | |
| grid: { | |
| color: theme.grid, | |
| borderColor: theme.grid, | |
| tickColor: theme.grid | |
| }, | |
| ticks: { | |
| color: theme.text, | |
| font: { | |
| weight: 'bold' | |
| } | |
| }, | |
| title: { | |
| display: true, | |
| text: 'Moduli Parameter t', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace", | |
| size: 14, | |
| weight: 'bold' | |
| } | |
| } | |
| }, | |
| y: { | |
| grid: { | |
| color: theme.grid, | |
| borderColor: theme.grid, | |
| tickColor: theme.grid | |
| }, | |
| ticks: { | |
| color: theme.text, | |
| font: { | |
| weight: 'bold' | |
| } | |
| }, | |
| title: { | |
| display: true, | |
| text: 'Effective Potential V(t)', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace", | |
| size: 14, | |
| weight: 'bold' | |
| } | |
| } | |
| } | |
| } | |
| }; | |
| // Initialize potential landscape chart | |
| const potentialCtx = document.getElementById('potential-landscape').getContext('2d'); | |
| const potentialGradient = createGradient(potentialCtx); | |
| new Chart(potentialCtx, { | |
| type: 'line', | |
| data: { | |
| labels: chartConfig.potentialData.labels, | |
| datasets: [{ | |
| label: 'Effective Potential V(t)', | |
| data: chartConfig.potentialData.values, | |
| borderColor: theme.primary, | |
| backgroundColor: potentialGradient, | |
| borderWidth: 2, | |
| pointBackgroundColor: theme.primary, | |
| pointBorderColor: theme.primary, | |
| pointHoverBackgroundColor: theme.highlight, | |
| pointHoverBorderColor: theme.highlight, | |
| tension: 0.4, | |
| fill: true | |
| }] | |
| }, | |
| options: { | |
| ...chartOptions, | |
| plugins: { | |
| ...chartOptions.plugins, | |
| annotation: { | |
| annotations: { | |
| unstablePoint: { | |
| type: 'point', | |
| xValue: chartConfig.potentialData.unstablePoint.x, | |
| yValue: chartConfig.potentialData.unstablePoint.y, | |
| radius: 8, | |
| backgroundColor: 'rgba(255, 0, 0, 0.8)', | |
| borderColor: 'rgba(255, 0, 0, 0.2)', | |
| borderWidth: 4, | |
| label: { | |
| content: chartConfig.potentialData.unstablePoint.label, | |
| enabled: true, | |
| position: 'top', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace" | |
| } | |
| } | |
| }, | |
| stablePoint: { | |
| type: 'point', | |
| xValue: chartConfig.potentialData.stablePoint.x, | |
| yValue: chartConfig.potentialData.stablePoint.y, | |
| radius: 8, | |
| backgroundColor: 'rgba(0, 255, 0, 0.8)', | |
| borderColor: 'rgba(0, 255, 0, 0.2)', | |
| borderWidth: 4, | |
| label: { | |
| content: chartConfig.potentialData.stablePoint.label, | |
| enabled: true, | |
| position: 'top', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| // Initialize gauge coupling chart | |
| const gaugeCtx = document.getElementById('gauge-coupling-interplay').getContext('2d'); | |
| const gaugeGradient = createGradient(gaugeCtx); | |
| new Chart(gaugeCtx, { | |
| type: 'line', | |
| data: { | |
| labels: chartConfig.gaugeCouplingData.labels, | |
| datasets: [{ | |
| label: 'Effective Gauge Coupling g(t)', | |
| data: chartConfig.gaugeCouplingData.values, | |
| borderColor: theme.secondary, | |
| backgroundColor: gaugeGradient, | |
| borderWidth: 2, | |
| pointBackgroundColor: theme.secondary, | |
| pointBorderColor: theme.secondary, | |
| pointHoverBackgroundColor: theme.highlight, | |
| pointHoverBorderColor: theme.highlight, | |
| tension: 0.4, | |
| fill: true | |
| }] | |
| }, | |
| options: { | |
| ...chartOptions, | |
| scales: { | |
| ...chartOptions.scales, | |
| y: { | |
| ...chartOptions.scales.y, | |
| title: { | |
| display: true, | |
| text: 'Effective Gauge Coupling g(t)', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace", | |
| size: 14, | |
| weight: 'bold' | |
| } | |
| } | |
| } | |
| }, | |
| plugins: { | |
| ...chartOptions.plugins, | |
| annotation: { | |
| annotations: { | |
| stableGauge: { | |
| type: 'point', | |
| xValue: chartConfig.gaugeCouplingData.stablePoint.x, | |
| yValue: chartConfig.gaugeCouplingData.stablePoint.y, | |
| radius: 8, | |
| backgroundColor: 'rgba(0, 255, 0, 0.8)', | |
| borderColor: 'rgba(0, 255, 0, 0.2)', | |
| borderWidth: 4, | |
| label: { | |
| content: chartConfig.gaugeCouplingData.stablePoint.label, | |
| enabled: true, | |
| position: 'top', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace" | |
| } | |
| } | |
| }, | |
| higherGauge: { | |
| type: 'point', | |
| xValue: chartConfig.gaugeCouplingData.higherPoint.x, | |
| yValue: chartConfig.gaugeCouplingData.higherPoint.y, | |
| radius: 8, | |
| backgroundColor: 'rgba(255, 165, 0, 0.8)', | |
| borderColor: 'rgba(255, 165, 0, 0.2)', | |
| borderWidth: 4, | |
| label: { | |
| content: chartConfig.gaugeCouplingData.higherPoint.label, | |
| enabled: true, | |
| position: 'top', | |
| color: theme.text, | |
| font: { | |
| family: "'JetBrains Mono', monospace" | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| } | |
| }); | |
| } |