J'ai un graphique en courbes et je veux l'agrandir mais je ne peux pas le faire. Voici mon code
// package.json "chart.js": "^2.7.3", "chartjs-plugin-zoom": "^0.6.6",
<script src="https://cdnjs.cloudflare.com/ajax/libs/Chart.js/2.7.3/Chart.min.js"></script>
<div class="row">
<div class="col d-flex justify-content-center">
<canvas id="myChart" style="max-width:95%;height:300px !important;"></canvas>
</div>
</div>
J'ai utilisé le plugin suivant pour zoomer
https://github.com/chartjs/chartjs-plugin-zoom#readme
J'ai également inclus hammerjs et angular / animations dans mon projet.
Mettre à jour
Pourquoi pan code> et zoom sont inconnus du typographie?
let ctx = document.getElementById('myChart')
let chart = new Chart(ctx, {
type: 'line',
data: {
labels: ["Red", "Blue", "Yellow", "Green", "Purple", "Orange"],
datasets: [{
label: '# of Votes',
data: [7, 10, 3, 5, 2, 3],
fill: true,
backgroundColor: 'orange',
borderColor: 'green',
pointBorderColor: 'red',
pointBackgroundColor: 'red'
}]
},
options: {
plugins: {
pan: {
enabled: true,
mode: 'x',
onPan: function () { console.log('I was panned!!!'); }
},
zoom: {
enabled: true,
drag: true,
mode: 'x',
onZoom: function () { console.log('I was zoomed!!!'); }
},
},
responsive: true,
}
})p >
3 Réponses :
Les options de zoom doivent être configurées sous le paramètre options et non options.plugins .
options: {
pan: {
enabled: true,
mode: 'x',
},
zoom: {
enabled: true,
mode: 'x',
},
responsive: true
}
Voir ce violon -> http://jsfiddle.net/3sx8zon2/ 2 /
mais en tapuscrit, cela donne une erreur de compilation car il n'y a pas de propriétés pan ou zoom
et où vous avez importé le zoom-plugin ?
C'est dans les sources du violon. Vérifiez si vous avez correctement référencé la bibliothèque. Et dans le code que vous avez indiqué, définissez pan et zoom sous les plugins, ce qui est incorrect, cela devrait être sous options
est-ce que dactylographié donne une erreur de compilation? car dans les options il n'y a pas d'options pan ou zoom
J'ai testé et cela fonctionne. Pourquoi pan et zoom sont inconnus des options dans le texte dactylographié?
Il a été mis à jour depuis votre réponse. Il fonctionnera désormais à l'intérieur de l'attribut de zoom dans les plugins
Tout d'abord, vous devez exécuter npm install --save chartjs-plugin-zoom pour l'installer avec npm.
Ensuite, importez "chartjs-plugin-zoom" dans votre fichier ts. et écrivez le plugin comme ceci:
plugins: {
zoom: {
pan: {
enabled: true,
mode: 'x'
},
zoom: {
enabled: true,
mode: 'x'
}
}
},
Installez chart.js et chartjs-plugin-zoom
<canvas id="mapId"></canvas>
Dans le fichier d'importation Component.ts Chart et chartjs-plugin-zoom
let myChart = new Chart('mapId', {
type: 'bar',
data: {
labels: ['Red', 'Blue', 'Yellow', 'Green', 'Purple', 'Orange'],
datasets: [{
label: '# of Votes',
data: [12, 19, 3, 5, 2, 3],
backgroundColor: [
'rgba(255, 99, 132, 0.2)',
'rgba(54, 162, 235, 0.2)',
'rgba(255, 206, 86, 0.2)',
'rgba(75, 192, 192, 0.2)',
'rgba(153, 102, 255, 0.2)',
'rgba(255, 159, 64, 0.2)'
],
borderColor: [
'rgba(255, 99, 132, 1)',
'rgba(54, 162, 235, 1)',
'rgba(255, 206, 86, 1)',
'rgba(75, 192, 192, 1)',
'rgba(153, 102, 255, 1)',
'rgba(255, 159, 64, 1)'
],
borderWidth: 1
}]
},
options: {
scales: {
yAxes: [{
ticks: {
beginAtZero: true
}
}]
}
},
plugins: {
zoom: {
pan: {
enabled: true,
mode: 'xy'
},
zoom: {
enabled: true,
mode: 'xy'
}
}
}
}
});
myChart.render();
Logique pour charger le graphique
import { Chart } from 'chart.js';
import 'chartjs-plugin-zoom';
In Component.html
npm i chart.js -s npm i chartjs-plugin-zoom -s
cet exemple fonctionne bien avec chartjs-plugin-zoom@0.7.7 et il est important de noter que la section 'plugins' ... est placée dans la section 'options'. J'ai manqué cela dans la documentation du plugin.