Skip to main content
🔗 Unlisted

Share visualization

Send this visualization to others.

Data Analysis — starwars_edges.csv

Unlisted visualization

Anyone with the link can view this unlisted visualization. Posting it publicly will make the link discoverable.

Data Analysis — starwars_edges.csv

0 stars20🔗 Unlisted
CCurran Kelleher
Last edited Oct 9, 2026
Created on Oct 9, 2026

Interactive scatter plot of the starwars_edges.csv dataset (Star Wars character co-occurrence edges), with a README documenting the dataset schema.

Star Wars Edges Scatter Plot Explorer

An interactive scatter plot of the Star Wars character interaction dataset. Each point is one edge record (a source → target interaction within an episode).

Dataset Overview

  • Filename: data/starwars_edges.csv (loaded at /data/starwars_edges.csv)
  • Rows: 1013 (as reported by the project)
  • Columns: 4
  • Description: Edge list of interactions between Star Wars characters, with the episode in which the interaction occurs and a weight-like value.

Column Descriptions

Column Description Type (Munzner) Missing / parsing notes
episode Star Wars episode number in which the interaction occurs. Ordinal (ordered episode numbers; used as quantitative position on X) Parsed as a number; empty or non-numeric values become
source Name of the character initiating the interaction. Nominal Trimmed of whitespace; empty values are excluded from color categories.
target Name of the character receiving the interaction. Nominal Trimmed of whitespace.
value Numeric weight of the interaction (magnitude as recorded in the source data; exact meaning is not documented in the file). Quantitative Parsed as a number; non-numeric values become

Meanings of value are inferred from the column name and typical edge-list conventions; they are not confirmed by documentation in the dataset.

Visualization Mappings

  • X axis: episode — the episode is the only ordered discrete identifier with a meaningful numeric order, so it provides a natural horizontal position.
  • Y axis: value — the only other quantitative field, giving each edge a vertical magnitude.
  • Color: source — the character initiating the interaction. It is nominal with many categories; the color legend lists them and hovering a legend entry fades the other characters. target and episode are available from the Color menu as alternatives.

Because the dataset has only two quantitative fields, the scatter plot's X and Y menus offer episode and value. Categorical fields are offered only as color encodings.

Interaction

  • Hover a point to see its source, target, episode, and value.
  • Hover a legend entry to highlight that category.
  • Use the menus to remap axes or color.
  • Press V to show Voronoi cell borders.

Visualization Ideas

  1. Episode-by-episode interaction volume

    • Main question: How does the number of recorded character interactions vary across episodes, helping the social analytics audience compare activity by episode?
    • Relevant data fields: episode (count edge rows).
    • Suggested visual encoding: A bar chart with episode on the x-axis and the number of edge records on the y-axis.
    • Interaction or annotation: Hover a bar to show its episode and exact edge count.
    • Implementation note: Load /data/starwars_edges.csv with d3.csv() and count rows by parsed episode; this measures records, not unique relationships.
  2. Total interaction value by episode

    • Main question: How does the recorded magnitude of interactions change across episodes?
    • Relevant data fields: episode, value.
    • Suggested visual encoding: A column chart of summed value for each episode, with episode on the x-axis.
    • Interaction or annotation: Add a toggle between sum and mean so viewers can distinguish aggregate magnitude from average edge value.
    • Implementation note: Parse numeric fields from the loaded CSV and aggregate value by episode; describe the measure as recorded value because its meaning is undocumented.
  3. Distribution of edge values by episode

    • Main question: Are interaction values typically similar across episodes, or do some episodes contain more extreme records?
    • Relevant data fields: episode, value.
    • Suggested visual encoding: A box plot for each episode, showing median, quartiles, and range of value.
    • Interaction or annotation: Hover a box to reveal its record count and summary statistics.
    • Implementation note: Compute summaries from finite value records grouped by episode; do not interpret the values beyond their recorded magnitude.
  4. Interaction value over episode, with record-level detail

    • Main question: Which individual interaction records have relatively high or low values, and where do they occur in the episode sequence?
    • Relevant data fields: episode, value, source, target.
    • Suggested visual encoding: Retain the current scatter plot: episode on x, value on y, and character source as color.
    • Interaction or annotation: Use the existing Voronoi hover tooltip to show source → target, episode, and value; let viewers switch color to target or episode.
    • Implementation note: Use the existing data-driven scatter plot and encodings; avoid adding character fields as numeric axes.
  5. Most frequent sources

    • Main question: Which characters most often appear as the initiating source in the recorded interactions?
    • Relevant data fields: source (count edge rows).
    • Suggested visual encoding: A sorted horizontal bar chart of records per source character.
    • Interaction or annotation: Selecting a character highlights that source’s records and shows the corresponding episode and target details.
    • Brief implementation note: Count loaded CSV rows by source; label results as source-record frequency, not as a measure of overall character importance.
  6. Most frequent targets

    • Main question: Which characters most often appear as the receiving target?
    • Relevant data fields: target (count edge rows).
    • Suggested visual encoding: A sorted horizontal bar chart, distinct from the source ranking, of records per target.
    • Interaction or annotation: Link each bar to a filtered list or scatter plot of its incoming edge records.
    • Brief implementation note: Group rows by target and count them; keep source and target roles explicit because they are not interchangeable fields.
  7. Character role comparison

    • Main question: For each character, how do their observed initiating and receiving record counts compare?
    • Relevant data fields: source, target (count edge rows for each role).
    • Suggested visual encoding: A dumbbell plot with one position for source count and one for target count per character.
    • Interaction or annotation: Sort by either role count and highlight a selected character’s records in both roles.
    • Brief implementation note: Derive the character list from observed source and target values, then compute the two counts from the edge list; do not call these measures of influence.
  8. Most common directed character pairs

    • Main question: Which exact source → target pairs recur most often in the records?
    • Relevant data fields: source, target (count matching edge rows).
    • Suggested visual encoding: A ranked horizontal bar chart of directed pairs, with bar length representing record count.
    • Interaction or annotation: Selecting a pair filters the detail view to its records by episode and value.
    • Brief implementation note: Group by both source and target without collapsing direction; derive all pairs from the loaded CSV.
  9. Character-to-character interaction matrix

    • Main question: Which character pairs have recorded edges, and how does the recorded value or count vary between them?
    • Relevant data fields: source, target, value.
    • Suggested visual encoding: A matrix with source characters as rows and target characters as columns; use cell color for edge count and allow switching to summed value.
    • Interaction or annotation: Hover a cell to list its episode records; provide character search to navigate a large matrix.
    • Brief implementation note: Build row and column categories from observed names. Clearly label whether the cell shows count or summed recorded value.
  10. Bipartite source–target network

    • Main question: How are initiating and receiving roles connected across the dataset?
    • Relevant data fields: source, target, value, episode.
    • Suggested visual encoding: A bipartite network with source-role nodes on one side and target-role nodes on the other; edge width represents record count or summed value.
    • Interaction or annotation: Hover an edge to show its pair and records; filter by episode.
    • Brief implementation note: Keep the two role columns distinct in the layout, even when a character name occurs in both roles; derive edges and totals from the CSV.
  11. Force-directed character network

    • Main question: What overall pattern of recorded connections emerges when characters and their interactions are viewed together?
    • Relevant data fields: source, target, value, episode.
    • Suggested visual encoding: A force-directed network with character nodes and directed edges; use arrows for source-to-target direction and optionally scale width by edge count.
    • Interaction or annotation: Hover a node to highlight its incident edges; select an episode to show only records from that episode.
    • Brief implementation note: Construct nodes from observed names and links from the edge list. State that the layout reflects the chosen algorithm, not a measured social distance.
  12. Episode-filtered network small multiples

    • Main question: How does the pattern of recorded character-to-character links differ from one episode to another?
    • Relevant data fields: episode, source, target, value.
    • Suggested visual encoding: Small-multiple directed networks, one panel per episode, using consistent node identities and edge encoding.
    • Interaction or annotation: Hover a link to display its source, target, episode, and value.
    • Brief implementation note: Split loaded records by episode; use consistent scales where possible and avoid implying a node or edge is absent from the story merely because it is absent from that episode’s records.
  13. Episode filter for record exploration

    • Main question: Which source–target records and values appear in the episode a viewer wants to examine?
    • Relevant data fields: episode, source, target, value.
    • Suggested visual encoding: An episode selector linked to the current episode-by-value scatter plot.
    • Interaction or annotation: Selecting an episode filters points and updates a count of visible records; retain tooltips for pair details.
    • Brief implementation note: Filter the loaded rows by episode and use the existing scatter plot scales and tooltip behavior.
  14. Episode-by-character activity heatmap

    • Main question: Which characters appear most frequently in records in each episode, either as source or as target?
    • Relevant data fields: episode, source, target (count edge-row appearances by role).
    • Suggested visual encoding: A heatmap with episodes on one axis and characters on the other; color shows record appearances, with a role switch for source versus target.
    • Interaction or annotation: Hover a cell to show its count; clicking it filters to the matching episode and role.
    • Brief implementation note: Derive character names and episode values from the data and count one selected role at a time so each cell has a clear definition.
  15. Episode sequence of a selected directed pair

    • Main question: In which episodes is a particular source → target pair recorded, and what values are attached to those records?
    • Relevant data fields: source, target, episode, value.
    • Suggested visual encoding: A selected-pair dot plot with episode on the x-axis and value on the y-axis.
    • Interaction or annotation: Choose the pair from observed names; use point tooltips to reveal the record details.
    • Brief implementation note: Filter the CSV to the selected ordered pair. Preserve multiple records rather than assuming one record per pair and episode.
  16. Value concentration and outliers

    • Main question: Are recorded values concentrated in a small portion of edge records, or spread more evenly?
    • Relevant data fields: value, source, target, episode.
    • Suggested visual encoding: A sorted dot plot of individual records by value, with points colored by episode or source.
    • Interaction or annotation: Hover high- and low-value points to inspect the corresponding pair and episode; offer an episode filter.
    • Brief implementation note: Sort finite values for display and retain row-level tooltips. Avoid labeling records as causal or significant based on value alone.
  17. Source–target flow diagram

    • Main question: Which source and target groups account for the largest recorded flows between character roles?
    • Relevant data fields: source, target, value.
    • Suggested visual encoding: A Sankey-style diagram with source nodes on the left, target nodes on the right, and link width representing edge count or summed recorded value.
    • Interaction or annotation: Hover a link to show the pair and selected aggregation; switch between count and sum.
    • Brief implementation note: Build the flow from observed directed pairs and explicitly label the link-width metric; do not treat value as a known causal strength.
  18. Episode-by-pair interaction timeline

    • Main question: How are recorded directed pairs distributed across the episode sequence?
    • Relevant data fields: episode, source, target, value.
    • Suggested visual encoding: A timeline with episode on the x-axis and one row per selected directed pair; mark each recorded edge, with size or color encoding value.
    • Interaction or annotation: Search or select pairs from the dataset and show pair details on hover.
    • Brief implementation note: Generate the timeline from actual edge records and support pair filtering to keep the display readable; do not infer interactions in episodes without a row.
  19. Value versus record frequency for directed pairs

    • Main question: Do pairs with more records also have higher summed recorded values?
    • Relevant data fields: source, target, value (derive record count and summed value per pair).
    • Suggested visual encoding: A scatter plot with pair record count on x and summed value on y; use labels or color for selected directed pairs.
    • Interaction or annotation: Hover a point to show its source → target, record count, and value sum; allow filtering to one episode.
    • Brief implementation note: Compute pair-level aggregates from the loaded rows and label both axes as derived summaries, with no assumption about the underlying meaning of value.
  20. Linked overview and detail dashboard

    • Main question: How can the audience move from overall episode patterns to the specific character records behind them?
    • Relevant data fields: episode, source, target, value.
    • Suggested visual encoding: Combine episode-level interaction counts, a value-by-episode scatter plot, and a compact source–target pair ranking in coordinated views.
    • Interaction or annotation: Brushing an episode range or selecting a character or pair filters the other views; a reset control restores all loaded records.
    • Brief implementation note: Derive every panel from the same CSV rows and keep selections synchronized; label the record-count and recorded-value measures distinctly.

References

Inspired by:

The reference implementation's structure (context providers, D3-in-React render functions, Voronoi hit-testing, and the horizontal color legend) was adapted to this dataset. The reference's own dataset and data-specific columns were not reused.

Comments

Sign in to join the discussion.