Sélectionner/épingler des pixels individuels sur la carte thermique Plotly
P粉806834059
2023-09-02 14:57:46
<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>
En étudiant vos exemples, j'ai trouvé le vôtre
console.log
没有提供预期的数据,因为data
是循环的。但是,由于data.points
具有单个元素,因此您可以通过data.points[0].x
、data.points[0] 获取坐标。分别为 y
和data.points[0].z
.