나는 이것에 대해 궁금와 비슷한 일을하고 싶어했다. 이것이 내가 찾은 것입니다. 먼저 마우스 좌표가 무엇인지 알고 싶었습니다. 좌표를 읽을 수 있으려면, 내가 drag_points.py에서 "인쇄"다음과 유사한 "경고"문, 삽입 :
var startx = 0;
var starty = 0;
function dragstarted(d) {
d3.event.sourceEvent.stopPropagation();
d3.select(this).classed("dragging", true);
startx = obj.ax.x(d[0]);
starty = obj.ax.y(d[1]);
}
var endx = 0;
var endy = 0;
function dragended(d) {
d3.select(this).classed("dragging", false);
endx = obj.ax.x(d[0]);
endy = obj.ax.y(d[1]);
alert(endx-startx);
d3.select("input")
.attr("value",endx-startx)
}
마우스 클릭시 및 해제, 그것은 x 축과 경고 DIAG을 엽니 다 거리 여행. 이렇게하면 좌표 정보에 액세스 할 수 있습니다.
다음으로이 좌표 정보를 기본 html로 동적으로 인코딩 할 수 있는지 테스트하여 추가 백엔드 처리를 허용합니다. d3.js는 HTML 태그의 내용을 수정할 수 있음을 알게되었습니다. . 내가 때문에 특히 "plugins.py"와 같은 디렉토리에 _display.py (에서 "신사 템플릿"을 수정, 나는 템플릿에 다음을 입력 :
<table width=300 height=200 border=5>
<tr>
<form method="POST" action="/plot" class="">
<input type="submit" name="submit" value="PLOT">
</form>
</tr>
</table>
을하고 "drag_points.py을"수정 대신 경고 상자를 여는 그래서 그것은 endx-의 startx를 위해 "POST"에서 "입력"값의 값을 수정. 즉, 볼을 끌어 놓을 때
d3.select("input")
.attr("value",endx-startx)
최종 결과였다 경고 박스는 x- 변위를 표시하고이 값은 "입력"버튼의 값을 업데이트하는 데 사용됩니다. 입력 버튼 이외의 다른 태그를 사용하여 값을 설정하면 다운 스트림 정보를 기울이십시오.
경고에서 생성 된 값을 파이썬 입력으로 다시 읽는 방법을 설명해 주시겠습니까? 나는 이것이 당신이 제공 한 코드의 마지막 비트에서 설명하고있는 것이라고 생각하지만, 나는 뭔가를 놓치고있다. – Docuemada
이것이 명확하지 않다면 미안하다. 내가 한 일을 다시 요약하면 다음과 같습니다. 1. mpld3 플롯을 일부 태그가 포함 된 html로 표시합니다 (위의 예에서 태그, font-style = "display : none"을 사용하여 숨길 수 있음). 2. 그림 안의 점들을 움직입니다. 3. 자바 스크립트 내부에서 좌표를 읽고 d3.js를 사용하여 태그 값을 업데이트하는 데 사용합니다. 4. 마지막으로 "제출"버튼을 누르면 정보가 파이썬 스크립트를 사용하여 좌표 정보가 디코딩 된 서버로 다시 전송됩니다. 이게 도움이 되길 바란다. – sjp14051