Sélectionner/épingler des pixels individuels sur la carte thermique Plotly
<p>Sur les heatmaps Plotly, il est parfois utile d'avoir 2 modes de sélection : </p>
<ul>
<li><p>Sélection rectangulaire (déjà disponible dans modbar)</p>
≪/li>
<li><p><strong>Sélectionner/corriger des pixels individuels</strong> : j'essaie d'y parvenir en recyclant un bouton "drawcircle" existant dont je n'ai pas besoin. Lorsque vous cliquez dessus, le pixel doit être mis en surbrillance ou avoir un disque coloré (ou une "épingle" rouge comme l'interface utilisateur de Google Maps) au-dessus </p>
≪/li>
</ul>
<p>Problème : Lorsque l'outil <code>drawcircle</code> est sélectionné dans la barre de mod, l'événement <code>plotly_click</code> code>plotly_selected </code> Aucune position initiale du clic de souris n'est indiquée. (Je ne veux pas faire un vrai cercle, je veux juste utiliser le premier clic). Voir aussi Gestionnaires d'événements en JavaScript</p>
<p>
<pre class="brush:js;toolbar:false;">const z = Array.from({
longueur : 50
}, () =>Array.from({
longueur : 50
}, () => Math.floor(Math.random() * 255)));
const plot = document.querySelector("#plot");
données const = [{
tapez : 'carte thermique',
z : z
}];
disposition const = {
'axe y' : {
'échelle d'ancrage' : 'x'
}
} ;
const configuration = {
modeBarButtons : [
["zoom2d"],
["zoomIn2d"],
["zoomOut2d"],
["autoScale2d"],
["sélectionner2d"],
["dessiner un cercle"]
],
displaylogo : faux,
displayModeBar : vrai
} ;
Plotly.newPlot('plot', données, mise en page, configuration);
plot.on("plotly_selected", (données) => {
console.log(données);
});
plot.on('plotly_click', (données) => {
console.log(données);
});</pré>
<pre class="brush:html;toolbar:false;"><script src="https://cdn.plot.ly/plotly-2.16.2.min.js"></script>
<div id="plot"></div></pre>
</p>
<p><strong>Comment utiliser l'outil de barre de mode Sélectionner/Corriger les pixels/Points sur une carte thermique Plotly ? </strong></p>
<p>Remarque : la documentation Python est plus complète que la version JS : Ajouter/Supprimer des boutons de barre modale</p>