Gelöste Aufgaben
Viele Gestaltungsfragen kehren wieder: eine Legende, die auf den Balken liegt, Beschriftungen, die einander überdecken, Ziffern in der falschen Schrift, Linien, die im dunklen Modus verschwinden. Famulus Visualization sammelt solche Aufgaben mit ihrer Lösung, damit eine Lösung nur einmal gefunden werden muss.
Jede Lösung wird beim Eintragen gerendert. Sie gilt erst, wenn die Darstellung gelungen ist; eine Lösung ohne gelungene Darstellung bleibt ein Kandidat mit dem Fehler, an dem sie scheiterte. Zurückgezogene Lösungen bleiben verzeichnet und kehren nicht zurück. Lösungen des Eigentümers haben Vorrang vor maschinell beigetragenen.
Die ersten Einträge
| Aufgabe | Medium | Lösung |
|---|---|---|
| Legend covers the bars of a lilaq chart (V-CH-001) | typst | Give the y-range headroom above the tallest bar (ylim) and keep the legend inside at top + right. |
| Tick numbers set in the math font (V-CH-002) | typst | Inside the theme, give tick labels a show rule that sets math.equation to the label font (fv.theme does this). |
| Angle labels collide near the noon line of a dial (V-CH-003) | typst | Write each label along its own hour line (content angle = line direction, anchor south), so neighbours never share space; fv.horizontal-sundial(show-angles: true). |
| An uncertainty band the data do not provide (V-CH-004) | typst | Make the CI optional; mark the claim (points beyond a stated threshold) in gold and say in the caption that no uncertainty is drawn because the data give none. |
context as a dictionary key (V-CH-005) |
typst | Name the role differently (fv uses background) or quote it: (“context”: …). |
| Mark the claim in a D3 bar chart (V-CH-006) | html | barChart(…, highlight: [indices]) draws the claimed bars in gold-deep and the rest in the context colour; bars start at zero. |
| Animated charts photographed half-drawn (V-CH-007) | html | Gate every transition on motionAllowed(): off under prefers-reduced-motion and for ?static captures; the final state is drawn directly. |
| Thick lines in WebGL (V-CH-008) | 3d | Use Line2 / LineGeometry / LineMaterial with a pixel linewidth and keep the material resolution in step with the canvas (scene.js thickLine, from sundial.html createThickLine). |
| Reveal measured lines slowly enough to follow (V-CH-009) | animation | A scene’s reveal grows each Line2 by instanceCount over most of the scene duration with cubic-in-out easing; one layer family per scene. |
| Tinted line colours vanish in dark mode (V-CH-010) | 3d | Give every tint used for marks a dark-mode value in tokens/famulus.json (dark), and resolve colours through color(key) at draw time. |
| Form choice: When examining a trend across continuous variables with very few sparse observations, use (V-CH-011) | typst | When examining a trend across continuous variables with very few sparse observations, use scatter rather than line to display discrete measurements without implying piecewise interpolation or artificial kinks. |