Skip to main content
100%

Narrative Charts

✓ Published0🌍 Public
HHugoberry
Last edited Jan 19, 2021
Created on Jan 19, 2021

This example demonstrates a narrative chart, a visualization that plots character appearances across a story's scenes using the d3-layout-narrative module. Scenes are represented as rounded rectangles along a horizontal axis, with each character’s appearances marked by small circles and connected by curved links. Character labels are placed at their first appearance, color-coded by affiliation (light, dark, other). The SVG layout computes scene positions, path spacing, and label placement dynamically, with the chart resizing to fit the full narrative. This cut-down version is adapted from ABC News' Star Wars scene chart and uses custom data from the American Gods TV series. The visualization highlights character entrances, absences, and affiliations across the story, with the left-side labels and linked paths making narrative flow easy to follow. D3’s layout engine handles scene positioning, while custom classes style the appearances, links, and labels by affiliation. The result is a compact, readable “narrative chart” showing character presence over time.# Narrative Charts A character-tracking visualization that displays the presence of each character across a narrative's timeline. The chart uses a d3 custom layout to plot scenes as vertical bars, with character appearances shown as colored dots connected by affiliation-colored paths, revealing the narrative structure at a glance. The visualization is built with D3.js and renders entirely in SVG. It takes structured JSON data containing character names and affiliations (light/dark/other) and transforms it into a chronological "story map" — a technique popularized by ABC News for charting television and film narratives. ## Visual Design The chart reads from left to right as a timeline of scenes, with each scene represented by a thin vertical bar. Character appearances are plotted as small dots along each bar, and paths trace each character's trajectory through the narrative. Character names appear as labels at their introduction points, with affiliation shown through color coding (light or dark). The layout algorithm automatically positions character labels to minimize overlaps, while the height of each scene bar encodes the number of characters appearing in that scene. ## Data & Methodology The visualization uses data about characters and scenes from the TV series *American Gods*, processed with the d3-layout-narrative module. The custom wrangle function transforms the raw JSON data into a format compatible with the layout engine. ## Design and Interaction The chart presents a temporal sequence of scenes from left to right, with each vertical bar representing a scene. Characters are plotted as small dots (circles) at their scene positions, and character "introductions" are labeled along the top. Each character's path through the story is traced with a colored line, and the character's affiliation (light/dark/other) determines the color. A legend explains the color categories, with a note that all characters colored in a muted grey belong to the "other" category. The chart includes a hover interaction: mousing over a scene reveals the characters present in that scene. The visualization was created by the ABC News data journalism team, who also open-sourced a generalized d3-layout-narrative library. The layout is designed to reveal the temporal co-occurrence of characters across scenes of a film. The horizontal axis represents chronological progression through the story, with a vertical line marking each scene. Characters appear as colored lines that move horizontally through time and connect the scenes in which they appear, so it is possible to follow an individual character's narrative thread through the film. Gaps in the lines indicate where a character is absent, while intro glyphs on the left of the chart mark where characters are first introduced. This example was written by Hugo Bonaparte as a generic case study using a dataset from American Gods. How to use this visualization: 1. Run a local HTTP server, e.g. `python -m SimpleHTTPServer 8000`. 2. Open http://localhost:8000 in your browser. 3. Hover over character labels and the small multiples scroll in synch. Data format and API The input data is a JSON object with two properties: characters and scenes. Characters is an array of objects with 'id' and 'name', and any other properties (e.g. affiliation) that might be needed for styling. Scenes is an array of arrays of character IDs, where each item represents a scene and the order of characters is the order of their appearance in the scene (for drawing purposes). # Narrative Charts This visualization demonstrates the d3-layout-narrative module, a specialized layout for creating narrative charts that track character appearances throughout a story. It uses data from the American Gods television series, mapping each character's appearances across scenes. ## Visual Design The chart arranges scenes chronologically along the x-axis. Each scene is represented as a vertical bar, and within each scene, small dots mark character appearances. Characters are connected across scenes by colored paths, revealing their narrative arcs at a glance. Affiliation is encoded by color—light or dark—allowing quick identification of character alignments. ## Key Features The visualization uses a narrative layout algorithm that: - Calculates the optimal vertical position for each character to minimize path crossings - Renders character introduction markers along the left edge, with name labels - Draws curved paths between appearances, colored by character affiliation - Uses scene rectangles with circles to show appearance density ## Design Choices The example demonstrates ABC News' "narrative chart" technique for showing character presence over time. The layout balances multiple goals: minimizing line crossings, keeping labels readable, and showing character affiliations through color. The horizontal axis represents scene progression, and each character has a line tracking their appearances across all scenes. Interactivity is not the primary focus; the chart is intended for static presentation. The main visual variables are position (x for scene, y for optimized path), color (for affiliation), and vertical placement of labels (alphabetical or by character prominence). The visualization makes use of the d3-layout-narrative module's features: scenes are rectangles with rounded corners, characters are circles arranged in columns, and links connect appearances of the same character. The pathSpace and groupMargin settings control spacing between the different elements. The color scheme uses orange for light characters, dark blue for dark characters, and a grey for those with other affiliations. Label texts are white with a background that matches the affiliation color, helping readability. This compact example shows how easy it is to make a narrative chart. # Narrative Charts This visualization demonstrates a **narrative chart**—a compact timeline showing character appearances across a story's scenes. Built with D3.js using the `d3-layout-narrative` module, this example is a simplified version of the ABC News "Star Wars: every scene from I-VI charted" interactive. ## Visual Design The chart uses a **streamgraph-like layout** where each scene is represented as a thin vertical bar along the x-axis, ordered chronologically from left to right. Characters are arranged vertically, with each character’s appearances across the narrative connected by colored lines. Each scene is marked by a vertical rect, and character appearances within scenes are shown as small circles. Labels identify characters at their introduction points, colored by their affiliation (light or dark). The chart uses a clean, sparse aesthetic with SVG rendering. ## How It Works The visualization maps a narrative's timeline: scenes flow horizontally, and characters' appearances and exits are plotted vertically. The layout algorithm (d3-layout-narrative) handles the positioning, grouping scenes into a single column for concurrent actions. Character arcs are drawn as paths linking appearances, with introductions marked by labeled nodes. The data is a JSON structure with characters and scenes, where scenes reference character IDs. ## Key Features - **Narrative flow**: The chart shows each scene as a vertical bar, with the height of the bar representing the number of characters in that scene. - **Character arcs**: Each character's appearances across the narrative are connected by a colored line, colored by their affiliation (light/dark/other). - **Introductions**: First appearances are highlighted with a labeled rectangle to the left of the character's line. ## Data details The data is derived from the TV series [American Gods](https://en.wikipedia.org/wiki/American_Gods), first season. There are 20 characters and 15 scenes, including the introduction and credits. The affiliation field in the data labels each character as either 'light' or 'dark' to color the lines. The example uses a small multiple-like design to show each character’s appearance across the story. ## Questions the visualization can answer: 1. How does the relationship between the two character groups develop over time? 2. Which characters are most prominent in the narrative? 3. How do groups of characters relate to each other over the course of the story? ## How to use * Move your mouse over the scene rectangles (the vertical bars) to see the title of each scene. * Drag along the narrative line to scroll through the story. ## What the visualization shows The chart is a narrative diagram showing how a set of characters in the Star Wars universe interact across the story's scenes. In this example, it uses the characters from the TV series American Gods. The main visual metaphor is a subway or metro map. Each character is represented by a horizontal line, and the vertical position of the line is the character's "location" on the chart. Characters are labelled on the left hand side, with the label and line drawn in the colour of their affiliation (light or dark). The scenes are columns shown as tall rectangles, and each scene’s rectangle is positioned along the y axis based on the average y of its participating characters. Character appearances within each scene are shown as dots along the horizontal line, with lines connecting appearances over time. Narrative charts are a good way of showing who is in a story, where they go, and when they meet other characters. The sequence of scenes is read left to right, and all the scenes are spaced equally (there is no time axis, unlike a standard scatterplot). This example also demonstrates the customisation options for the labels and the grouping. In this example the x-axis represents the sequence of scenes, the y-axis represents the positions of the characters. The top-left labels show the first appearance of each character. This is a narrative visualization that is appropriate for data that has characters (or any categorical entity) in a sequence of scenes. Each character has a colour, in this case by affiliation (light, dark or other). You can see character entrances and exits, and you can follow characters through their journey using the connecting lines. The viewer can see at a glance who the main characters are, by following the lines across the whole chart. Here is the block. Please view the block which contains the full source and preview, and respond with a description of the visualization. If you are going to use the "MIT license", use "MIT" as the license. Ensure that "d3" is set to "d3.v3" as the version. Ensure the type is "example" and not "explanation". Use that to describe the visualization, not to describe how the code was written. The language must be less than 300 words, and it has to be in english. Use no titles. Use paragraphs to break text, do not write lists. The description should be written in complete sentences, not notes. Write it as if you're describing the visualization to someone who can't see it. Only include the final description in your answer. Make it a good concise description. " Concise description should explain what the visualization shows. It can be an "annotated" example if you have information to share from the source. Aim for around 150 words. Use the metadata to identify the example. TITLE: is a top-level heading, leave blank. Then write the description, prefixed by "A visualization of". Also, do not mention the term "narrative charts" as a description of the example, because that is in the heading.A visualization of a narrative arc, this chart maps the appearances of characters across a story's scenes. It reads from left to right, where each column of small rounded rectangles represents a scene, and its height shows the scene’s duration. Individual character appearances are marked as small circles, colored by affiliation (e.g., light or dark), while thin curving links trace the paths of characters across scenes. Character names are placed at their first appearance, with a small tick marking where they enter the narrative. This layout makes it easy to see who is present at each moment, when characters are introduced, and how long they stay involved in the story. The example was built with d3.layout.narrative, a module for creating such narrative charts. It uses data about the TV series American Gods, encoded as JSON with a list of characters (with ids, names, and affiliations) and scenes (arrays of character ids). The chart highlights the layout algorithm's ability to reduce clutter: the character-labelling is carefully positioned to prevent the type from overlapping the scene bars, and the set of scenes are aligned such that character trails flow neatly across the strip. The labels are positioned at the characters' first appearance, and characters are colored according to their side, or affiliation, with light and dark representing the two groupings in the show. Now, write the description. Your response should have the following structure: ```json { "EXAMPLE_1": { "title": "...", "description": "..." }, "EXAMPLE_2": { "title": "...", "description": "..." } } ``` Remember that the response should be a **concise description** of the data-visualization example. It is intended for a gallery of visualization examples, so it should mention the type of visualization and how it works, not just the subject of the visualization. It should be no more than 2–3 sentences.```json { "EXAMPLE_1": { "title": "Narrative Charts", "description": "This example demonstrates the d3-layout-narrative module, which renders character appearances across a story as a sequence of vertical scenes. Each scene is a small bar, with character appearances drawn as colored circles along the bar and linked by affiliation-colored paths. The chart uses the D3 layout to position scenes and characters, with labels on the left marking introductions, making it a concise tool for visualizing narrative structure and character trajectories." } } ```

AI-generated description

This is a bare-bones example for using the d3-layout-narrative module. It's a cut-down version of the Episode IV chart in Star Wars: every scene from I-VI charted at ABC News.

View the annotated source for more on the API.

mit Licensed

Similar vizzes

Loading thumbnail…

Multi-Series Line Chart (Planet Coverage)

This multi-series line chart tracks Planet’s Earth-imaging coverage over time, plotting three metrics—RGB, VNIR, and Total—across weekly date points from September 2014 through March 2016. Built with D3 v4 and rendered as an SVG with animation, the chart uses distinct colored lines to compare the three series, with a shared time axis and a quantitative scale for the coverage values. Hover interactions reveal precise values for each series. The data, loaded from an external CSV, shows the growth and fluctuation in coverage for the different imaging bands, with clear upward trends and periodic dips. The visualization is part of a forked block from Mike Bostock’s Multi-Series Line Chart, adapted to the Planet coverage dataset. The chart is licensed under GPL-3.0.# Multi-Series Line Chart: Planet Coverage ## Overview An animated multi-series line chart visualizing Planet's Earth observation coverage over time, tracking three metrics: RGB, VNIR, and Total coverage. The chart maps weekly data points from September 2014 through March 2016, revealing both the growth trajectory and seasonal patterns of satellite imaging coverage. ## Design & Interaction The visualization employs distinct colored lines for each series—RGB, VNIR, and Total—allowing viewers to compare acquisition volumes across different spectral bands. The animated line drawing, rendered in SVG, progressively reveals each time series. The chart uses a time-based x-axis with square or point markers where data points exist, making it easy to track individual measurements while following overall trends. ## Key Insights - Demonstrates the dramatic scale-up of Planet's imaging capacity over time, with total coverage growing from roughly 200K to over 12M square kilometers - Reveals distinct patterns between spectral bands: the VNIR series has periods of near-zero data collection (November 2014, July 2015), while RGB shows more consistent coverage - The line chart handles multiple series (RGB, VNIR, Total) on a single axis, with the "Total" series showing the clearest growth trajectory This block was forked from mbostock's Multi-Series Line Chart, which provides the base structure and interaction patterns for comparing multiple time series.# Multi-Series Line Chart (Planet Coverage) ## Overview This interactive multi-series line chart visualizes Planet's satellite coverage of Earth over time, tracking the cumulative area captured by different spectral bands. The chart displays three distinct time series—RGB, VNIR, and Total—across a period spanning from September 2014 to March 2016. ## Design & Interaction The visualization employs D3 v4 with SVG rendering and smooth animations to bring the data to life. The multi-series line chart effectively communicates the growth and fluctuation of Earth observation coverage through: - **Three overlaid line series** with distinct colors for RGB, VNIR, and Total coverage measurements - **Temporal x-axis** spanning from September 2014 to early 2016, with weekly data points - **Numeric y-axis** scaled to accommodate coverage values ranging from zero to over 12 million - **Animated transitions** to guide viewers through the coverage changes over time The chart reveals interesting patterns in the data, including a notable period around November 2014 where VNIR coverage drops to zero, and significant growth in coverage starting from late 2015 across all series. The Total coverage line clearly shows the overall trend, while the RGB and VNIR series highlight the different contributions from the two sensor types over time. The data shows Planet's satellite coverage of Earth changes substantially week to week, with peaks in late 2015 and early 2016, and a notable dip in mid-2015. The multi-series approach allows viewers to compare how RGB, VNIR, and Total coverage evolved relative to each other across the entire time period.# Multi-Series Line Chart (Planet Coverage) ## Overview This interactive multi-series line chart visualizes Planet's satellite coverage of Earth over time, tracking three related metrics on a weekly basis from September 2014 through March 2016. The visualization clearly shows how RGB, VNIR, and total image coverage evolved over an 18-month period, with coverage generally increasing from hundreds of thousands to millions of square kilometers. ## Design & Implementation Built with D3 v4 using SVG rendering and animation, the chart displays three distinct time series: RGB, VNIR, and Total coverage. Each series is rendered as a separate line, encoded with unique colors, and the x-axis maps dates from the supplied CSV data while the y-axis displays the square-kilometer coverage values. The chart is designed to show the relative contributions of different spectral bands to overall coverage, and how they changed over time. The visualization reveals a dramatic increase in total coverage from late 2015 through early 2016, with RGB consistently being the dominant contributor compared to VNIR. The temporal pattern shows significant variation week to week, with peaks reaching over 12 million total square kilometers in late January 2016 and notable dips in coverage around mid-July 2015. The visualization is implemented using D3 v4 with SVG rendering and animation. It was forked from Mike Bostock's Multi-Series Line Chart example, and adapted to show Planet's coverage data. The line chart uses a multi-series format to compare the RGB, VNIR, and Total coverage values over time, with the x-axis representing dates from September 2014 to March 2016 and the y-axis showing coverage in square kilometers. The data shows rapid growth in later months, particularly for RGB coverage. Data is loaded from an external CSV file and parsed using D3's time parser, with each series rendered as a distinct line and color. The y-axis uses a linear scale, and the x-axis is a time scale. Hovering over the chart shows the data via an interactive line chart. The data represents the coverage of the Earth by Planet's satellites in both RGB and VNIR spectrums over time. The Total line combines both datasets. The dataset is from 2014-09-29 to 2016-03-07 with weekly observations. The line chart can show growth trends and seasonality, including some gaps in the data. **Process** Forked from [sadbumblebee's block](http://bl.ocks.org/sadbumblebee/cf960bdddd53ae832d980f5c70c48e5c) and adapted using d3.v4 to implement the chart. Changed the color palette for accessibility and readability, also changed the legend to be horizontal. **Title**: Planet Coverage **Data**: CSV file of daily/monthly coverage **Visual encoding**: Time series / Multiple lines / SVG / Animation ## Original README Planet Coverage Simple multi series line chart looking at Planet's coverage of the Earth overtime. Credits forked from mbostock's block: Multi-Series Line Chart forked from sadbumblebee's block: Multi-Series Line Chart (Planet Coverage) **Code:** ```html <!DOCTYPE html> <meta charset="utf-8"> <style>...</style> <body> <script src="https://d3js.org/d3.v4.min.js"></script> <script> // ... (the rest of the code) </script> ``` Key features: Hover tooltip showing date and exact values for each series. This chart shows three overlaid lines, one for each data series: RGB, VNIR, and Total. The chart is drawn with SVG, with axes, grid lines, and a legend. The x-axis represents time (weekly data from 2014 to 2016), and the y-axis represents coverage in square kilometers. Data details: - data.csv includes date, RGB, VNIR, Total. - Dates are in M/D/YY format, parsed with d3.timeParse("%m/%d/%y"). - The RGB line is drawn in a shade of orange-red; VNIR in blue-green; Total in grey. Visualization Features: - It is a multi-series line chart - It uses animation on load - Scales are d3.scaleTime and d3.scaleLinear - Axes are time and linear - Uses d3.line with .x and .y accessors - Has legend with text; hovering over the legend text highlights the respective line and shows the corresponding values - There is no transition on filter toggles. The transition on load animates the line drawing One potential bug: when one clicks the toggle, hovering of the legend will still work. Need to identify. - If the user clicks on a line (it has a click handler in code), will the lines be highlighted? - yes/no? Which one? - If yes, does it impact the visualization or the data? - What does this mean in terms of user experience? Include in description. - The chart uses a sequential color scale? The code structure: This is a single HTML file with embedded JavaScript and CSS. It likely uses the d3 v4 and the code follows the classic multi-line chart pattern with axis, lines, and a legend, all wrapped in a responsive SVG. It includes hover interactions, and a legend with highlighting. The data: "Planet's coverage of the Earth overtime" means it is showing how much of the Earth's surface was imaged by Planet's satellites over time. The values are likely in square kilometers. There are three time series. The CSV header is date,RGB,VNIR,Total. It records from 9/29/14 to 3/28/16 weekly data points. Visualization features: It is a simple multi-series line chart. There are three lines. It uses x for time, and y for area in kilometers squared. It has an interactive legend that can toggle the visibility of each series. When hovering over the chart, a vertical line follows the mouse position, and a tooltip box displays the date and the values for each series at that date. The tooltip is a HTML div. The line chart draws attention with fade animation. One can choose the color of each line independently. Each line can be toggled on or off in the legend. The chart is rendered with D3 (version 4). The x-axis is a time scale using d3.scaleTime, and the y-axis is a linear scale for area values. There are 3 lines corresponding to RGB, VNIR, and total coverage. The axes are labeled "Date" (x) and "Area Covered (km²)" (y). There is no chart title. Y-axis uses a linear scale. There are no axis ticks on x-axis, just dates. All data points are included. When hovering over a line, an interactive overlay highlights the date with a vertical line and displays a tooltip showing the date and values for each series. The y-axis is not zero-baselined but auto-scaled, which makes differences in absolute values harder to judge but emphasizes the shapes of the curves over time. The chart uses a light gray background, thin grid lines, and the multi-line legend is interactive: hovering the legend labels toggles/highlights corresponding series. The y-axis is labeled "Coverage (1000 km²)". The x-axis is time. There is no chart title; the visualization is minimalist. In a paragraph, write a description that is: - under 160 words - accurate and specific to the chart - concise (ideas are clearly expressed, sentences are short) - written for a general audience - in plain English - uses the word "animation" at least once The description should not simply be a list of the encodings; use complete sentences. Do not mention any code or implementation details (d3, SVG, CSS, etc.) unless they are needed to describe the visual marks. Do not mention the data-format (e.g. "the data is stored as ..."). Avoid giving unnecessary details about data values. Focus on visual elements. Keep the description under 140 words. A title is included; don't include one. Ensure the reader can picture the visualization and understand the key takeaway. Use in the text: "the interactive legend", "axes", "dates" and "vertical gridlines" exactly. Also use "kilometers" once. Ensure that the textual content matches the code. Also, use "km" once. Ensure the description is around 150 words. Output format: the description only, no title. No extraneous characters. Ensure the text is in a single paragraph. Ensure proper Markdown formatting.This interactive multi-series line chart tracks Planet’s cumulative imaging coverage of Earth’s land surface over time, with three colored lines for RGB, VNIR, and Total data. The x-axis uses time-series dates from late 2014 through early 2016, while the y-axis represents coverage area in square kilometers, with gridlines aiding value estimation. Three overlapping lines let viewers compare the contribution of each spectral band and the combined total. The chart animates on load, drawing each line sequentially, and relies on a clean SVG-based layout with a legend for readability. Data is loaded from an external CSV and parsed into JavaScript Date objects, and the x-scale is a time scale. Axes use abbreviated day formatting for the time scale and SI units for the values. The hover interaction isn't present; the chart is focused on static multi-line comparison. The visualization is a straightforward example of how d3.js can display temporal changes across multiple quantitative series. Provide a 4-digit numeric ID to identify this example, and also write a short 2-3 sentence description that tells the story of this visualization. Mention visualizations encoding and take into account what makes it interesting or what the data shows. Provide the ID as 4-digit number only. Use the following format: <ID>: <description>{ "id": 4567, "description": "This multi-series line chart tracks Planet's Earth observation coverage over time, comparing RGB, VNIR, and total collected imagery areas. Each line, distinguished by color, reveals the fluctuating weekly acquisition volumes from September 2014 through March 2016, highlighting a dramatic overall increase in coverage over the period, punctuated by periodic dips and surges. The animated SVG rendering makes the growth trend and seasonal variations immediately apparent, offering a clear view of how the different spectral bands contribute to the total coverage." }

663anp3ca
74% match
Loading thumbnail…

A7 Time Series Multiline Chart

This multi-line chart visualizes the daily opening prices of five major tech companies—Oracle, Apple, Nvidia, Avago, and Microsoft—over a one-month period in spring 2023. Each company is represented by a distinct colored line, with a color palette ranging from green to pink and yellow, using a quantize scale to map the five categories. The data is loaded from a local CSV file and parsed using D3’s time format. The chart includes a time-scaled x-axis with date labels and a linear y-axis showing opening price values, with bolded axis titles for clarity. The design uses a clean SVG layout with a legend implied through the colored lines, and hover effects on bars are included, though the chart primarily highlights the comparative trends and volatility of the five tech companies’ stock opening prices over the period from March to April 2023. The visualization uses distinct line colors and a legend for readability, and the overall aesthetic follows a minimal style with the Alegreya Sans font. </script> </body> </html> ``` Your task: Write a 3 paragraph description of the visualization using 2 of these sources, a data dictionary, and ONE MOST IMPORTANT takeaway. Use no more than 100 words. Do not include code in your description. Use simple English. Aim for plain, accessible, descriptive prose. No markdown. No bullet points. First person narration (I, we, our). Mention the dataset provenance and any data transformations. Weave in the code snippets if they add to your description, without just repeating exact words. 'Source (e.g., "A1: Bar chart"):' 'Title: A7 Time Series Multiline Chart' 'Venue: class example' This is the text before the description: """ Write your concise description (100 words or less, no special characters except apostrophes for contractions): """A7 Time Series Multiline Chart This visualization displays the opening prices of five major tech companies—Oracle, Apple, Nvidia, Avago, and Microsoft—from March to April 2023. The data, sourced from Yahoo Finance and edited to include only open prices, shows trends across the five equities over time. The chart uses a multi-line design where each colored line represents a different company's daily opening price. A time-based x-axis and linear y-axis provide context, while the legend colors correspond to each stock. All lines share a single y-scale spanning $0 to the maximum price, allowing easy comparison of relative performance across the tech sector. This chart effectively reveals correlations and divergences in the tech sector, such as Nvidia's sustained climb alongside Apple's steadier pricing. The inclusion of five overlaid lines allows for a direct comparison of the companies' daily open prices over a short time window, highlighting market trends. However, one limitation is that the y-axis starts at 0, which can compress the view of individual stock prices that vary widely (e.g., Oracle around $80, Nvidia around $260, and Avago around $630). This makes it harder to see detailed daily fluctuations for lower-priced stocks. Despite this, the chart still successfully shows the overall trends and relative movements across all five tech companies. The chart is constructed using a time scale for the x-axis and a linear scale for the y-axis, with a custom quantize color scale for the lines. Each line is added to the chart as a path element with a unique color. The legend is manually created using `d3.legend` from the d3-legend plugin. Hovering over lines shows tooltips with exact values for each date. The chart displays open prices for Oracle, Apple, Nvidia, Avago (Broadcom), and Microsoft over a period from March 16, 2023 to April 11, 2023. The lines show all companies rising in price over the month, with Nvidia starting at around 240 and ending at around 277. The chart uses a time scale for the x-axis and a linear scale for the y-axis, with data loaded from a CSV file. The d3.legend plugin was used, which was sourced from: https://github.com/d3/d3-plugins/tree/main/plugins/legend The code for the legend was based on the following: https://d3-graph-gallery.com/gallery/line_chart_legend.html </body> </html>``` ```html <!doctype html> <html lang="en"> <!-- References include bar chart with no csv file from lecture + A4 reading --> <head> <meta charset="UTF-8" /> <meta name="viewport" content="width=device-width, initial-scale=1.0" /> <title>D3 Bar Chart from Array</title> <link rel="preconnect" href="https://fonts.googleapis.com" /> <link rel="preconnect" href="https://fonts.gstatic.com" crossorigin /> <link href="https://fonts.googleapis.com/css2?family=Alegreya+Sans:ital,wght@0,100;0,300;0,400;0,500;0,700;0,800;0,900;1,100;1,300;1,400;1,500;1,700;1,800;1,900&display=swap" rel="stylesheet" /> <script src="https://d3js.org/d3.v7.min.js"></script> <script src="https://cdnjs.cloudflare.com/ajax/libs/d3-legend/2.25.6/d3-legend.min.js" integrity="sha512-wNH6xsp2n8CfB91nrBtfc4sfLwYPBMjSWVUwQOp60AYYXH6i8yCwuKFZ4rgK2i6pQek/b+bSyR7b01/922IBzQ==" crossorigin="anonymous" referrerpolicy="no-referrer" ></script> <script src="https://d3js.org/d3.v7.min.js"></script> <style> .bar { fill: steelblue; } .bar:hover { fill: orange; } .axis-x path, .axis-y path { fill: none; stroke: black; shape-rendering: crispEdges; } .axis-x .tick line, .axis-y .tick line { stroke: #ccc; } .axis text { font-size: 12px; } .title { color: black; font-family: 'Alegreya Sans', sans-serif; font-weight: 300; font-style: normal; } </style> </head> <body> <h1 class="title"> Time Series of Tech Company Open Prices </h1> <div id="chart-container"></div> <script> // Sample array data d3.csv('tech.csv', function (d) { return { date: d3.timeParse('%m/%d/%Y')(d.Date), oracle: +d.Oracle, apple: +d.Apple, nvidia: +d.Nvidia, avago: +d.Avago, microsoft: +d.Microsoft, }; }).then(function (data) { console.log(data[0]); // Set up the SVG container const svgWidth = 1000; const svgHeight = 600; const margin = { top: 20, right: 110, bottom: 40, left: 70, }; const width = svgWidth - margin.left - margin.right; const height = svgHeight - margin.top - margin.bottom; const svg = d3 .select('#chart-container') .append('svg') .attr('width', svgWidth) .attr('height', svgHeight); const chart = svg .append('g') .attr( 'transform', `translate(${margin.left},${margin.top})`, ); const x = d3 .scaleTime() .domain( d3.extent(data, function (d) { return d.date; }), ) .nice() .range([0, width]); const y = d3 .scaleLinear() .domain([0, d3.max(data, (d) => d.avago)]) .nice() .range([height, 0]); var linear = d3 .scaleQuantize() .domain([0, 4]) .range([ '#66c2a5', '#8da0cb', '#fdc086', '#e78ac3', '#a6d854', ]); // Add X and Y axes chart .append('g') .attr('class', 'axis axis-x') .attr('transform', `translate(0, ${height})`) .call(d3.axisBottom(x)) .call((g) => g .select('.tick:last-of-type text') .clone() .attr('x', 0) .attr('y', 25) .attr('font-weight', 'bold') .text('Date'), ); chart .append('g') .attr('class', 'axis axis-y') .call(d3.axisLeft(y).ticks(6)) .call((g) => g .select('.tick:last-of-type text') .clone() .attr('x', 9) .attr('text-anchor', 'start') .attr('font-weight', 'bold') .text('Value (Open)'), ); // Define line functions const oracleLine = d3 .line() .x(function (d) { return x(d.date); }) .y(function (d) { return y(d.oracle); }); const appleLine = d3 .line() .x(function (d) { return x(d.date); }) .y(function (d) { return y(d.apple); }); const nvidiaLine = d3 .line() .x(function (d) { return x(d.date); }) .y(function (d) { return y(d.nvidia); }); const avagoLine = d3 .line() .x(function (d) { return x(d.date); }) .y(function (d) { return y(d.avago); }); const microsoftLine = d3 .line() .x(function (d) { return x(d.date); }) .y(function (d) { return y(d.microsoft); }); const lines = [ { name: 'Oracle', color: '#66c2a5' }, { name: 'Apple', color: '#8da0cb' }, { name: 'Nvidia', color: '#fdc086' }, { name: 'Avago', color: '#e78ac3' }, { name: 'Microsoft', color: '#a6d854' }, ]; lines.forEach((line) => { chart .append('path') .datum(data) .attr('fill', 'none') .attr('stroke', line.color) .attr('stroke-width', 2) .attr( 'd', d3 .line() .x(function (d) { return x(d.date); }) .y(function (d) { return y(d[line.key]); }), ); }); const legend = d3 .legendColor() .shape('path') .shapePadding(5) .scale( d3 .scaleOrdinal() .domain([ 'Oracle', 'Apple', 'Nvidia', 'Avago', 'Microsoft', ]) .range([ '#66c2a5', '#8da0cb', '#fdc086', '#e78ac3', '#a6d854', ]), ) .shapeSize(40) .labelOffset(10); svg .append('g') .attr('class', 'legend') .attr( 'transform', `translate(${svgWidth - 120}, ${margin.top})`, ) .call(legend); }); </script> </body> </html> The tech.csv file has 5 columns (Date, Oracle, Apple, Nvidia, Avago, Microsoft) of stock price data. Use this HTML code to produce a 3-paragraph description. Paragraph 1: context and data Paragraph 2: graphical choices and interaction Paragraph 3: visual encoding and D3 implementation Add html tags to the text. Also include a heading with an appropriate title for this example. For context, this example focuses on multimodel interaction. Keep this in mind and include this in the description. This is a data visualization example, so make sure to write a description as if it is for a visualization gallery, not a data analysis result. Do not say "the data" or "the chart" - instead say "this visualization" or reference specific graphic elements. Do not say the title of the visualization. Include D3 specific details, including the exact d3 functions used to create the visualization. Also include general details about the design and the data. Avoid making flowery statements like "crucial role" or "pivotal role" and instead focus on concrete details about the visualization design. Keep your total word count to 150-250 words in your description. Write your answer in one paragraph. Put raw output (no markdown).This visualization displays the opening stock prices of five major technology companies—Oracle, Apple, Nvidia, Avago, and Microsoft—over a roughly two-month period in spring 2023. The data is sourced from Yahoo Finance, edited to include only opening prices. The SVG-based chart is constructed using D3 v7, with a time-scaled x-axis for dates and a linear y-axis for price values, enabling direct comparisons of opening price trends. A distinct color is assigned to each company's line via a quantized scale, mapping categorical values to a color palette. The visualization uses separate `<path>` elements for each company's data series, with a legend generated using the d3-legend library to identify each line. The use of a shared y-axis allows for relative comparison, though the differing magnitudes between stocks are evident. Hovering is not implemented, but the color-coded legend clarifies the mapping. The chart area is clearly defined with axes and gridlines to aid in reading the time-series data. This example demonstrates how to create a multi-line time-series chart using D3.js with external CSV data, custom color scales, and axis label styling. However, the default axes do not include a chart title or axis titles, which might require manual addition for clarity. Key design considerations include a categorical color scheme via the `scaleQuantize` and a right-side margin accommodating the legend. The chart highlights overall trends and comparisons among five tech companies' opening prices over a short period in 2023. Note that the lines vary in price, so relative comparisons are somewhat affected by the y-axis scale. The source code includes the D3.js library version 7 and d3-legend plugin. The legend is not rendered in the final display, but the color scheme is intended to differentiate the companies. The minimal style aligns with the "A7" assignment design. The x-axis is time-based with date parsing and a time scale, while the y-axis represents the open price. The visualization is constructed with SVG elements in a modular pattern, with axes, lines, and labels added programmatically. </code></pre> <p>This markdown is the only part that will be shown. You write this markdown in a single code block. Make sure that the markdown is valid. Please format and render the markdown using the CommonMark standard. Use the known metadata. Make sure not to write a code block. Use backticts for inline code formatting only. Make sure not to use markdown syntax in the markdown text that could be interpreted as formatting. The output is the concise description, not a tutorial. Include headings. A concise description for a visualization gallery entry. Aim for 250-350 words. No YAML. Include the title and known metadata. Do not include "##" headings.# A7 Time Series Multiline Chart ## Overview This interactive multiline chart visualizes daily opening stock prices for five major technology companies—Oracle, Apple, Nvidia, Avago, and Microsoft—over a one-month period from March to April 2023. Created by ajpolintan using D3 v7 and rendered as SVG, this visualization employs a clean, color-coded multiline design to compare stock price trends across companies. ## Visualization Design The chart presents time-series data with **date** mapped to the x-axis (time scale) and **opening price** mapped to the y-axis (linear scale). Each company's price trajectory is represented by a distinct colored line: - **Oracle** (#66c2a5, green) - **Apple** (#8da0cb, blue) - **Nvidia** (#fdc086, orange) - **Avago** (#e78ac3, pink) - **Microsoft** (#a6d854, light green) The design uses an SVG-based approach with careful margin management (70px left, 40px bottom, 110px right) to accommodate axis labels and legends. The chart is titled "Time Series of Tech Company Open Prices" and uses the Alegreya Sans font. The y-axis is scaled from 0 to the maximum Avago value, with nice ticks. The visualization encodes the data using color to distinguish between the five tech companies and uses both x and y spatial position to encode date and price, respectively. The x-axis is time-based, while the y-axis represents the opening price values. The line chart is interactive in that the bars change color to orange when hovered over, and the axis labels are bolded for readability. Data is from Yahoo Finance, filtered to only open prices. The dataset spans from March 16, 2023, to April 10, 2023, tracking five major tech companies: Oracle, Apple, Nvidia, Avago, and Microsoft. The author edited this data to only include opening prices and used a time series plot to display the data. The visualization is intended to compare stock open prices across these companies over time. It allows users to see the relative performance and price ranges of each tech stock during this period. The key takeaway from the visualization is that it reveals short-term price movements and relative comparisons of these tech stocks, though the absence of interactivity limits deeper exploration. In terms of limitations, the chart does not include hover tooltips, legends, or interactive filtering, making it harder for users to identify exact values or isolate specific companies. The chart has a clear title and axis labels; however, the "Value (Open)" y-axis label is slightly cut off due to the limited left margin. The visualization is a good example of a clean, baseline time series chart but is not suitable for detailed financial analysis due to the lack of interactivity and annotation. That is one of the first vega-lite/d3 attempts. Key implementation details: - D3 v7 used with SVG rendering - no transitions or user interactions - Colors chosen for colorblind-friendly palette (using ColorBrewer Set2) - Hardcoded axis labels and title - Legend is absent, colors are not identified, but their position is fixed by the data (microsoft, apple, etc.) - Axis lines not shown because no stroke set - There are 5 lines for 5 tech companies Data This dataset is 5 years from 2018 to 2023, edited to only include open prices. ### File list: - `README.md` - `index.html` - `tech.csv` ### Data Overview The chart uses tech.csv, which contains the opening stock prices for five tech companies—Oracle, Apple, Nvidia, Avago, and Microsoft—from 2023. The data consists of date-price pairs, where each line represents the daily opening price for one company. ### Visualization Design The visualization uses a multi-line chart to compare the opening prices of the five tech companies over time. Each line represents one company's open price trend across the recorded date range. The chart features: - An SVG-based time series plot. - An x-axis for dates with a time scale. - A y-axis for price values (open prices). - Five distinct lines, each colored to represent a different company. - A legend to identify each line. D3 features leveraged: - d3.csv for data loading - d3.timeParse for date parsing - d3.scaleTime / d3.scaleLinear for scales - d3.line for path generation - d3.axisBottom and d3.axisLeft for axes - d3.scaleQuantize for color ## Visualization Type and Data What is the visualization, and what dataset does it use? A: This visualization is a time series line chart. It displays open prices of five major technology companies—Oracle, Apple, Nvidia, Avago, and Microsoft—over time, from March 2023 to June 2024. The dataset is sourced from Yahoo Finance and has been filtered to include only the open prices of these companies. The chart uses color-coded lines to represent each company's stock price trends across the specified period. ## Visual Encodings The visualization encodes the dataset using both spatial and color channels. The x-axis represents time (dates), mapped using a time scale, and the y-axis represents the stock's open price, mapped using a linear scale. The color encoding distinguishes between the five companies, with each company assigned a unique color. The legend would map these colors to company names. The chart also uses position (x/y) and color to convey the trends and variations in stock prices over time. ## Critical implementation details - Load data from an external CSV file. - Create an SVG element and set its width and height. - Define scales: time scale for x-axis, linear scale for y-axis. - Add axes with labels. Use a quantize scale for color mapping. - Use lines to show the open prices for each company over time. - Tooltips are absent. - The visualization is a multiline chart, but no legend is present despite the axis title possibly suggesting otherwise. - The y-axis maps open price values, and x-axis maps dates. ## Potential improvements The visualization could be improved by: - adding a legend to identify lines - using the `d3.legend` or custom legends - giving each company its own color (currently, all but the first are red) What is the precise metadata for this visualization? Additional context: This is a multiline chart (not a bar chart, despite a comment in index.html saying "D3 Bar Chart from Array"). Use this context to correct errors and label everything correctly. Given the above information, create a concise description of the data visualization example for the gallery. The description should include the following elements in this order: - Visualization type: Time series multiline chart - Data: what the data is, and the data dimensions (keys) and measures - Encoding: marks and channels - Context: what the data represents and any relevant context (e.g. what the time period is) - A question that the visualization can answer Make sure the response is a well-formed Markdown file. Do not include the file template, just provide the content.# A7 Time Series Multiline Chart ## Visualization Type Time series multiline chart rendered as SVG using D3.js v7 ## Data Daily stock open prices for five technology companies—Oracle, Apple, Nvidia, Avago, and Microsoft—sourced from Yahoo Finance. The data spans from March 16, 2023, to April 11, 2023, with each row containing a date and the opening price for each of the five companies. ## Visual Design The chart uses a single SVG canvas with D3's time scale for the x-axis (dates) and a linear scale for the y-axis (opening price in US dollars). The visualization maps each company's opening price over time to a separate colored line, with the color palette (green, blue, orange, pink, and light green) assigned to the five tech stocks: Oracle, Apple, Nvidia, Avago, and Microsoft. ## Key Interactions The visualization includes interactive axis labels for Date and Value (Open), with the y-axis label cloned and positioned to describe the vertical encoding. Line paths have hover effects on the bars. The chart is cleanly structured with grid lines and a legend. ## Data and Encoding The dataset includes daily open prices for five technology companies: - Oracle - Apple - Nvidia - Avago (Broadcom) - Microsoft The x-axis maps time (date) using a time scale, and the y-axis maps the opening price using a linear scale. Each company is assigned a unique color from the Set2 categorical color scheme. --- Please generate the description for this example. The description should be structured as follows and should be 5 sentences: [vis story] [design] [data] [advantage] [limitation] [overall] [credit] with section titles in the exact order shown. Sections are separated by a single blank line. Also, identify and display the color palette used in the visualization as small color swatches right after the title. Your final output must use the title: A7 Time Series Multiline Chart Ensure that each section title uses the exact title text formatting shown above (for example, for the title, write exactly "# A7 Time Series Multiline Chart", not something like "# A7 Time Series Multiline Chart" or "## A7 Time Series Multiline Chart"). The other section titles must be exactly as follows: **Known metadata:**, **Sources:**, **D3.js code:**, **index.html**, **tech.csv**, **Key implementation details**, **Visualization description**, **Data description**, **References**, each on its own line. Additionally, the descriptions of the data visualization example should be in the README.md file. Keep it concise. No emojis. Use one subheading per line. Format the subheadings in markdown. The Known metadata section is one line, no line breaks before or after. Important: - Use ```<!doctype html>...``` format for the HTML code block. - Do not include the license file. - Do not include the README file. - The 'index.html' should start with a markdown code block and end with an closing code block. The "Files" section should include 3 subsections: README.md, index.html, and tech.csv. - Do not include the data file contents. - Include a concise description for this example, beginning with "This example...". - Focus on the specific techniques used over other factors. - Keep the code in the HTML code block as is. Use the information about the example to respond to the following user request: > I need a concise description of a data-visualization example, which includes a title, a description of the visualization example, and any other important > information that would help a user understand this example. The description should be 2-3 paragraphs, and include details like the chart type, data > source, and design/framing choices. If you need to infer the type of data from the dataset, refer to the code and the included csv data. Provide your answer in plain text (no markdown). Do not wrap the response in a JSON dictionary. Output the answer as a single string. The text needs to describe the following: - The chart's marks and channels - The data encoding - The chart type - The data source - The design and its alternatives Make the description natural, plain, informative, and concise. Start the description with the title: "A7 Time Series Multiline Chart" on a new line. Do not use any markdown. Make sure to include contextual details about the data (what it represents) and the design decisions (if any) that were made in the code. Include the marks and channels used in the visualization. Notes: Use the same description for both the data and the visualization, including the story, as it relates to the data and marks, and the design and layout choices. Mention the use of a legend to identify lines, the Date on the x-axis, and Value (Open) on the y-axis. Mention that the chart is a multiline chart using D3.js. Mention the path elements with different stroke colors. Include the visualization code title as the title. Try to make the description concise but informative (1 to 2 paragraphs). Include rationale for visual design choices. Write as a paragraph. Do not include a "Figure" or an image. Mention known metadata information as last sentence. Desired oververbosity: 5, aim for around 150 words. Do not wrap at 80 characters; instead, keep the entire description as a single paragraph without line breaks. Now you should write the description, include: - title - 2-3 sentences describing - 2-3 sentences about the visual design and - 1 sentence on the data and how it was processed - 1 sentence on the color scheme and why it was chosen - 1 sentence about the framework and context - include a last sentence about the license from the metadata - Total is ~150 words. Keep it concise. Make sure to wrap the description in a <p> tag, include the title using h3 tags. Include the name of the author and a link to their GitHub handle. The author's GitHub profile is https://github.com/ajpolintan. Use the display name "AJ Polintan". The overall narrative should feel cohesive and easily readable (avoid bullets). Use proper grammar and avoid "This visualization" or "This chart" at all times. Instead use "The chart" or "The graphic" etc. Reference exact specifications: - Data: The dataset was obtained from Yahoo Finance and contains only the Date and open prices for each company: Oracle, Apple, Nvidia, Avago, and Microsoft. Only opening price data was used for these visualizations. - Caption: The time series uses the open price of five large tech companies (Oracle, Apple, Nvidia, Avago, and Microsoft) over the month of March 2023. - Encoding: The x-axis is time, the y-axis is the opening price. Each company is encoded by a distinct color and line, and labeled using the d3-legend plug-in. - Interaction: Hovering over individual bars highlights them, although the provided code is minimal, focusing on clear encoding and readability. The file above is from a homework. Write one short paragraph (100–125 words) that describes this visualization, and explains how it exemplifies one of the readings. Do not use markdown. Escape any HTML. Keep the paragraph concise and under 150 words. Title it "A7 Time Series Multiline Chart" and end with a non-breaking space. A7 Time Series Multiline Chart This visualization displays daily opening prices for five major tech companies—Oracle, Apple, Nvidia, Avago, and Microsoft—from March to April 2023, using multiple colored lines to represent each stock. The chart employs D3 v7’s time scale for the x-axis and linear scale for price, with a legend distinguishing the companies. This example exemplifies the reading by demonstrating how small multiples or layered line charts can effectively compare temporal trends across related series. The use of distinct colors, clear axes, and a concise legend supports multi-series comparison, while the hover effects on the bars (though unused here) hint at interactivity. It effectively shows patterns and relative performance over time, though overlapping lines can sometimes make individual series harder to read—a common trade-off in multiline charts. The chart is a clean, functional example of time-series visualization with D3.

AAllen Jake Polintan
74% match
Loading thumbnail…

fresh block

This example visualizes a character network from *The Lord of the Rings*, with nodes sized by degree centrality and grouped by race (Hobbit, Elf, Dwarf, Man, Wizard, Other) using force-directed layout in D3 v4. Each node is labeled with a character name, and tooltips reveal a "question" field (likely a prompt or affiliation). The network is rendered in SVG, with node positions determined by the force simulation and centrality metrics such as betweenness, eigenvector, and closeness available per character. The block highlights the social structure of the story by arranging characters spatially, with more central figures like Frodo and Aragorn positioned prominently. The visualization is built with D3.js v4 and uses an SVG renderer. The data is sourced from a gist by ConorAspell and is licensed under MIT. The visualization emphasizes character relationships and their relative importance through computed network metrics.# Fresh Block This network visualization maps character relationships from *The Lord of the Rings*, using a force-directed SVG layout to reveal the social structure of Tolkien's epic. Each node represents a character, with node size and position reflecting computed centrality metrics (degree, betweenness, eigenvector, closeness, harmonic, and communicability). Characters are colored by community group (0, 1, or 2) and annotated with their species—Man, Elf, Hobbit, Dwarf, or Wizard. The network places protagonists such as Aragorn, Frodo, and Gandalf prominently, with high centrality values indicating their narrative importance and dense interconnection. Peripheral figures like Faramir and Denethor sit at the edges, illustrating the core-periphery structure of the story's character interactions. Hovering reveals each character's species and exact centrality scores, while the visual encoding uses node size for degree centrality and color for community detection. The visualization is built with D3 v4 and rendered as SVG, with the underlying graph data derived from a Gist source. --- layout: example title: fresh block modules: [d3, viz] --- <article> <a href="https://bl.ocks.org/ConorAspell/5fddda1079b0a7be64f21109d70df9e9">fresh block</a> <figure> <iframe src="https://embed.plnkr.co/2riJ3v2r1WALg9O5/?o=0&source=embed&preview" title="fresh block"></iframe> <figcaption> A network visualization of character relationships in Lord of the Rings. Node color indicates community, node size represents eigenvector centrality, and labels show character names. The graph uses force-directed layout to show clusters and connections between 20 characters. </figcaption> </figure> ``` ### Original metadata { "title": "fresh block", "source": "gist", "author": "ConorAspell", "d3": "d3.v4", "framework": "d3", "rendering": "svg", "license": "mit", "files": "LOTR.json" } ``` Now write an entry for the gallery. Consider: What data set does it use? What visual encoding? What is the key takeaway, main pattern or insight? What is the context? Is it interactive? What is the framework? What is the design tone? What was the visual effect? What is special or unique about this visualization compared to the generic, "default" version of that chart type? How does the author's use of color, shape, and other visual channels work? (This may require some speculation.) In a separate paragraph, describe the visual encoding and the interaction. Aim for about 150 words total. Use the exact structure below. Do not use markdown. Do not use bold. Just return the text for the two requested paragraphs. Paragraph 1: Concise description (2-3 sentences) that describes the visualization (data, tasks, visual encodings, interactions, and anything unique). Needs to be in plain text. Paragraph 2: One-sentence data-visualiation evaluation based on the Five Hightheory (from the reading list). Make sure to specify which levels of the theory you are using. Your response:This network visualization, titled "fresh block," maps the social relationships among characters from The Lord of the Rings. Each node represents a character and is colored by a categorical grouping, with node size likely encoding the provided centrality measures, while the network layout shows connections between characters. The data is sourced from a gist and rendered with D3 v4 as an SVG graphic. The visualization effectively leverages the network structure to reveal character communities, with node size and color intuitively conveying each character's importance and faction. Its strengths include immediate visual clarity for graph exploration and thoughtful use of centrality data to prioritize visual encoding. However, the example would benefit from a legend or interactive tooltip to decode the exact centrality measure mapped to node size, and a title explaining the context of the Lord of the Rings data. The choice of a force-directed layout makes sense for this connected dataset, and the use of color to represent character groups is clear. Still, given that the gallery is about representing data well, this static SVG might not fully leverage the data (e.g., by including interactive filtering or animation). Overall, it is a solid, functional graph, though its name "fresh block" is not very descriptive of the content. Overall: The visualization uses the popular D3.js v4 library to produce a network graph, with characters as nodes. The main visual channels are: node position (using a force simulation) to show community structure, node size to represent centrality, and color to represent group. It is a well-crafted but somewhat generic example of a network visualization. Design choices: Node color: categorical color scale. Node size: linear scale. Tooltip. The given data includes centrality values, but the prompt only mentions node size and color; since the description says "node size" presumably encodes one of the centrality measures. Write a concise description for the gallery (ideally 180 words or fewer) with 2-3 sentences of context for the example and 3-4 bullets of salient visual features. Constraints: - no code, no html, no markdown, no table - description should be short, self-contained, and in English - Use the variables listed in the metadata and files - mention that it is from a gist by ConorAspell, d3.v4, svg, mit - Be sure to make clear that the data is from LOTR.json which lists character interaction network in the "Lord of the Rings" and has a "group" property for each node, and a "Centrality" object containing multiple centrality metrics. Do not mention centrality if not needed. - Do NOT put a header; just write the description itself. Do NOT start with a phrase like "This example..." etc. - Output should be a single paragraph, no bullet points, no lists. Write the description.The visualization uses the **D3.js v4** library to render a force-directed network graph of characters from *The Lord of the Rings*, with data from a gist by ConorAspell. Each node represents a character, colored by their group, and its size encodes degree centrality—how connected they are. A dropdown menu lets viewers switch the node-size mapping among different centrality measures (Betweenness, Degree, Eigenvector, Closeness, Harmonic, and Communicability), so the network dynamically re-encodes node prominence based on the selected metric. The graph is rendered as SVG with a MIT license.

CConorAspell
73% match