Replace every plot: a new plot widget behind the 14 panels that use wxPlotCtrl
還沒有人認領這個 Issue。
評估
研究方向
Start by reading the wxPlotCtrl wrapper ewxPlotCtrl and the 30-method subset the 14 listed panels call, such as AddCurve, DeleteCurve and the axis and title setters. The first step is a design discussion on the new widget's API, not code. Done means an agreed interface, unit tests for the axis and tick logic, and a headless render of each current plot for comparison.
由索引模型根據 Issue 內容生成。
描述
Andy, 2026-10-15, on the GROMACS minimisation energy plot: "We need to replace ALL plots with ones that work better."
That plot shows the old component's defaults: the x axis runs from -150 to 400 for steps 0 to 240, every y tick reads -4.51xe+06, and the unit is kJoule/Mole.
Where plots come from: every property plot goes through wxPlotCtrl (src/wxgui/wxplotctrl, about 15,000 lines) via ewxPlotCtrl. Users: GeomTracePropertyPanel, VectorPlotPropertyPanel, PlotAnyPropertyPanel, PlotMetaXY/3D, MoPanel, MomentsPanel, SpinSpin, TableAtomCoords, BuilderTraceStress, EqConstPlot, RxnConstPlot, RxnConstVsPlot, RxnErrPlot and RxnTrace. Together they call about 30 methods: AddCurve/DeleteCurve, pens and symbols, titles and axis labels, key, cursor index, client-coordinate mapping, and so on.
Plan
-
A new plot widget with that 30-method subset, so the panels change little. It provides:
- tight data ranges and nice ticks;
- offset or scaled axes for large values (E - E_ref, or x10^n in the label);
- unit names (kJ/mol, Hartree, eV, bar);
- Okabe-Ito colours (#210);
- hover readout, zoom and reset;
- an optional click callback (e.g. go to that geometry step when frames exist);
- PNG/SVG/CSV export.
Axis and tick logic gets unit tests.
-
A headless render of every current plot, old and new side by side, for review.
-
Switch the panels over in batches, then remove wxplotctrl.
The newer drawings (SpectrumCanvas, the MO diagram, the progress box) should share the axis and tick code.
Related: #334, #210, #180.
- 主要語言
- C
- 星號
- 10
- 分支
- 8
- 平均合併
- 21 分鐘
- 30 天內合併 PR
- 1
環境準備
這個專案沒有提供開發容器、Dockerfile 或貢獻指南,環境需要你自己搭建:先看它的 README,通用步驟見我們的新手貢獻指南。
從這裡開始
- 先讀完整個 Issue,再讀專案的貢獻指南。
- 在 Issue 下留言說明你要接手 —— 這能避免兩個人做同樣的事。
- Fork 儲存庫,在一個分支上完成修改。
- 送出 Pull Request,並在描述裡引用這個 Issue 編號。
FriendsofECCE/ECCE 的其他 Issue
-
難度 1/5 1 小時以內 新手友好度 70/100
FriendsofECCE/ECCE#353 ·
-
難度 2/5 1-3 小時 新手友好度 70/100
FriendsofECCE/ECCE#336 · 1 則留言 ·
-
難度 3/5 1-2 天 新手友好度 45/100
FriendsofECCE/ECCE#355 ·
-
Icons in MacOS未關閉enhancement
難度 5/5 一週以上 新手友好度 18/100
FriendsofECCE/ECCE#354 · 4 則留言 ·
-
難度 3/5 1-2 天 新手友好度 45/100
FriendsofECCE/ECCE#351 ·
查看 FriendsofECCE/ECCE 的全部 Issue
相似的 Issue
-
bug
難度 2/5 1-3 小時 新手友好度 68/100
維護者通常 2 天內回覆
-
bug
難度 2/5 1-3 小時 新手友好度 62/100
ChrisTitusTech/dwm-titus#397 ·
維護者通常 1 天內回覆
-
good first issue help wanted language:fr translation
難度 1/5 1-3 小時 新手友好度 85/100
mrvi0/cli-cheatsheet#160 ·
-
Test modules use volatile int for cross-thread flags instead of atomics可能已有人在做 @rahimuddin140 今天認領。 未關閉
難度 2/5 1-3 小時 新手友好度 72/100
valkey-io/valkey#4899 · 1 則留言 ·
維護者通常 2 天內回覆
-
Profiler (Remotery) leaks a socket for every connection that fails the WebSocket handshake可能已有人在做 @rthery 今天認領。 未關閉triage
難度 2/5 1-3 小時 新手友好度 72/100
維護者通常 1 天內回覆