or run

npx @tessl/cli init
Log in

Version

Files

tile.json

rubric.jsonevals/scenario-1/

{
  "context": "Evaluates how well the solution uses Plotly.js restyling APIs to initialize a scatter plot once and apply targeted trace and layout mutations without rebuilding the figure. It rewards in-place use of Plotly.restyle, Plotly.relayout, and Plotly.update to manage traces, visibility, ranges, and annotations.",
  "type": "weighted_checklist",
  "checklist": [
    {
      "name": "Init with newPlot",
      "description": "Creates the initial two-trace scatter chart using Plotly.newPlot with the provided container and series data.",
      "max_score": 15
    },
    {
      "name": "Per-trace restyle",
      "description": "Applies marker color/line width changes for a specific trace index via Plotly.restyle (or Plotly.update with data/layout arguments) without touching other traces.",
      "max_score": 25
    },
    {
      "name": "Visibility toggle",
      "description": "Uses Plotly.restyle or Plotly.update to flip a trace's visible state instead of removing or recreating data.",
      "max_score": 15
    },
    {
      "name": "Relayout ranges/title",
      "description": "Adjusts axis ranges and title through Plotly.relayout (or the layout portion of Plotly.update) while preserving existing data and legend state.",
      "max_score": 20
    },
    {
      "name": "Annotation relayout",
      "description": "Adds the requested single annotation by updating the annotations array through Plotly.relayout rather than redrawing the plot.",
      "max_score": 15
    },
    {
      "name": "No replotting",
      "description": "Subsequent style/layout changes avoid re-calling Plotly.newPlot, relying on restyle/relayout/update APIs for in-place mutations.",
      "max_score": 10
    }
  ]
}