我可以使用 Plotly 简单地显示我的情节(3D 散点图)。我正在尝试实现点击事件功能。一旦我点击任何一个绘图点,我想改变它的颜色。根据官方 Plotly 文档,这并不难:Plotly - 点击事件
我只能看到我点击的点被点击(控制台日志)。有没有人知道为什么我不能实时改变颜色?
提前致谢。这是我的片段:
模板:
{% extends 'base.html' %}
{% load static %}
{% block css %}
<script src="{% static 'js/plotly-latest.min.js' %}"></script>
{% endblock %}
{% block content %}
<div id="single_plot">
{{ plot_as_div|safe }}
</div>
{% endblock %}
{% block js %}
<script src="{% static 'js/plot_select_markers.js' %}"></script>
{% endblock %}
plot_select_markers.js
$(document).ready(function () {
var plot_div_id = $('#single_plot').children().attr('id');
var plotly_scatter_div = document.getElementById(plot_div_id);
var color_select = '#7b3294';
plotly_scatter_div.on('plotly_click', function (data) {
var pn = '', tn = '', colors = [];
for (var i = 0; i < data.points.length; i++) {
pn = data.points[i].pointNumber;
tn = data.points[i].curveNumber;
colors = data.points[i].data.marker.color;
}
colors[pn] = color_select;
var update = {
'marker': {
color: colors,
size: 7
}
};
Plotly.restyle(plotly_scatter_div, update, [tn]);
});