Files
stat230-2025-portfolio-temp…/index.html
2025-12-02 17:02:46 +02:00

459 lines
19 KiB
HTML

<!DOCTYPE html>
<html lang="en" data-theme="light">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>Data Visualization Portfolio - [Your Name]</title>
<!-- Pico.css for clean, minimal styling -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@picocss/pico@2/css/pico.min.css">
<!-- Vega-Lite library for interactive visualizations -->
<script src="https://cdn.jsdelivr.net/npm/vega@5"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-lite@5"></script>
<script src="https://cdn.jsdelivr.net/npm/vega-embed@6"></script>
<style>
/* KSE Brand: Override Pico.css with official colors */
:root {
--pico-primary: rgb(0, 57, 100); /* KSE Dark Midnight Blue */
--pico-primary-hover: rgb(0, 77, 130);
}
/* KSE Typography */
body { line-height: 1.3; }
h1, h2, h3, h4, h5, h6 { line-height: 1.15; }
/* Visualization containers */
article > div { width: 100%; min-height: 400px; }
</style>
</head>
<body>
<main class="container">
<!-- ============================================
GETTING STARTED - READ THIS FIRST!
============================================
HOW TO USE THIS TEMPLATE:
1. Replace all [placeholder text] in square brackets with your content
2. Copy visualization sections to add more (you need minimum 5)
3. Test by opening this file in your browser
4. Delete instructional comments before submitting
📖 FOR COMPLETE REQUIREMENTS: See ASSIGNMENT.md
Quick checklist:
- Replace [Your Name], video link, and introduction theme
- Add 5+ visualizations with context, design decisions, insights, sources
- Include unified theme connecting all visualizations
- Embed your 5-7 minute video presentation link
============================================ -->
<!-- ============================================
HEADER SECTION - Replace with your information
============================================ -->
<hgroup>
<h1>[Your Full Name]</h1>
<p>Data Visualization Portfolio</p>
<p>Principles of Data Visualization | KSE | Fall 2025</p>
</hgroup>
<!-- ============================================
VIDEO PRESENTATION - Add your video link
Required: 5-7 minutes, covers theme + key visualizations
See ASSIGNMENT.md for detailed video requirements
============================================ -->
<article>
<header>
<h2>📹 Video Presentation</h2>
</header>
<p>
<strong>Watch my portfolio walkthrough (5-7 minutes):</strong><br>
<a href="[YOUR VIDEO LINK HERE]" target="_blank" role="button">
▶️ View Video Presentation
</a>
</p>
<p>
<small>
<em>Note: If using Google Drive, make sure to enable external access to your video!</em>
</small>
</p>
</article>
<!-- ============================================
INTRODUCTION - Explain your unified THEME (3-5 sentences)
Your theme should connect all visualizations around a common
question or domain. See ASSIGNMENT.md for examples.
============================================ -->
<article>
<header>
<h2>Introduction</h2>
</header>
<p>
[Write your portfolio theme here (3-5 sentences). Explain what unifying theme connects your visualizations.
What overarching question are you exploring? Why did you choose
this topic? How do your 5+ visualizations work together to tell
a complete story?]
</p>
</article>
<!-- ============================================
VISUALIZATION 1: VEGA-LITE EXAMPLE
Copy this <article> block to add more visualizations.
For other viz types, see examples below (Tableau, R/ggplot2, images).
See ASSIGNMENT.md for quality checklist requirements.
============================================ -->
<article>
<header>
<h2>1. [Descriptive Title of Your Visualization]</h2>
</header>
<!-- CONTEXT & QUESTION (1-2 sentences) -->
<h3>Context & Question</h3>
<p>
[What analytical question does this address? Why is it important?]
</p>
<!-- DESIGN DECISIONS (2-3 sentences) -->
<h3>Design Decisions</h3>
<p>
[Chart type rationale, visual encodings, alternatives considered, tradeoffs]
</p>
<!-- THE VISUALIZATION -->
<div id="vis1"></div>
<script type="text/javascript">
/* ==========================================
VEGA-LITE SPECIFICATION
Replace the spec below with your Vega-Lite JSON.
Set "width": "container" and "height": 400
For CSV data: "data": {"url": "your-file.csv"}
(Include CSV file in your ZIP!)
========================================== */
var spec1 = {
"$schema": "https://vega.github.io/schema/vega-lite/v5.json",
"description": "city population",
"width": "container",
"height": 400,
"data": {
// OPTION 1: Inline data (small datasets)
// "values": [
// { "category": "A", "value": 28 },
// { "category": "B", "value": 55 },
// { "category": "C", "value": 43 },
// { "category": "D", "value": 91 },
// { "category": "E", "value": 81 }
// ]
// OPTION 2: External file (larger datasets)
"url": "assets/city-population.csv"
},
"mark": "line",
"encoding": {
"x": {
"field": "Year",
"type": "ordinal",
"axis": { "title": "Year" }
},
"y": {
"field": "population",
"type": "quantitative",
"axis": { "title": "Population" }
},
"color": {
"field": "Entity"
}
}
};
// This line embeds the visualization - don't change this
vegaEmbed('#vis1', spec1, { actions: false });
</script>
<!-- KEY INSIGHTS (2-3 sentences) -->
<h3>Key Insights</h3>
<p>
[Patterns, trends, outliers discovered. What viewers should take away.]
</p>
<!-- DATA SOURCE -->
<footer>
<strong>Data Source:</strong>
[Dataset name, organization, year. Include URL if available]
</footer>
</article>
<!-- ============================================
VISUALIZATION 2: TABLEAU PUBLIC EXAMPLE
Publish to YOUR Tableau Public account (required).
Get embed code and paste below.
============================================ -->
<article>
<header>
<h2>2. [Title of Your Second Visualization]</h2>
</header>
<h3>Context & Question</h3>
<p>
[What question does this visualization address?]
</p>
<h3>Design Decisions</h3>
<p>
[Explain your design choices. Why did you choose this chart type?
What visual encodings did you use? What interactive features
did you include and why?]
</p>
<!-- TABLEAU EMBED CODE -->
<!-- ==========================================
Paste your Tableau Public embed code here.
Must be published in YOUR account (not instructor's).
Delete the placeholder div below.
========================================== -->
<div style="border: 2px dashed #ccc; padding: 20px; text-align: center; margin: 20px 0;">
<div class='tableauPlaceholder' id='viz1764686803248' style='position: relative'><noscript><a href='#'><img alt='Sheet 1 ' src='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;fi&#47;finalprojectexampletableau&#47;Sheet1&#47;1_rss.png' style='border: none' /></a></noscript><object class='tableauViz' style='display:none;'><param name='host_url' value='https%3A%2F%2Fpublic.tableau.com%2F' /> <param name='embed_code_version' value='3' /> <param name='site_root' value='' /><param name='name' value='finalprojectexampletableau&#47;Sheet1' /><param name='tabs' value='no' /><param name='toolbar' value='yes' /><param name='static_image' value='https:&#47;&#47;public.tableau.com&#47;static&#47;images&#47;fi&#47;finalprojectexampletableau&#47;Sheet1&#47;1.png' /> <param name='animate_transition' value='yes' /><param name='display_static_image' value='yes' /><param name='display_spinner' value='yes' /><param name='display_overlay' value='yes' /><param name='display_count' value='yes' /><param name='language' value='en-US' /></object></div> <script type='text/javascript'> var divElement = document.getElementById('viz1764686803248'); var vizElement = divElement.getElementsByTagName('object')[0]; vizElement.style.width='100%';vizElement.style.height=(divElement.offsetWidth*0.75)+'px'; var scriptElement = document.createElement('script'); scriptElement.src = 'https://public.tableau.com/javascripts/api/viz_v1.js'; vizElement.parentNode.insertBefore(scriptElement, vizElement); </script>
</div>
<h3>Key Insights</h3>
<p>
[What did you discover?]
</p>
<footer>
<strong>Data Source:</strong> [Dataset information and URL]
</footer>
</article>
<!-- ============================================
VISUALIZATION 3: R (ggplot2) EXAMPLE
External library example - export as image
============================================ -->
<article>
<header>
<h2>3. Using External Libraries: R + ggplot2 Example</h2>
</header>
<h3>Context & Question</h3>
<p>
This example demonstrates how to use external visualization libraries
like R's ggplot2. You can create visualizations in your preferred
tool/language, export them as images, and include them in your portfolio.
</p>
<h3>Design Decisions</h3>
<p>
This visualization was created using R and the ggplot2 library,
a powerful tool for creating publication-quality graphics. The code
loads city population data and creates a line chart showing population
trends over time for different cities. After creating the visualization
in R, it was exported as a PNG image and included in the portfolio.
</p>
<!-- R CODE BLOCK -->
<details>
<summary><strong>📝 Click to view R code</strong></summary>
<pre style="background: #f5f5f5; padding: 15px; border-radius: 5px; overflow-x: auto;"><code>install.packages("ggplot2")
library(ggplot2)
data <- read.csv('assets/city-population.csv')
ggplot(data, aes(x = Year, y = population,
color = Entity)) + geom_line()</code></pre>
</details>
<!-- STATIC IMAGE -->
<!-- ==========================================
Export as PNG/SVG, save in assets folder.
Include image file in your ZIP.
========================================== -->
<img src="assets/ggplot-example.png"
alt="City population trends over time created with ggplot2"
style="max-width: 100%; height: auto; border: 1px solid #ddd;">
<h3>Key Insights</h3>
<p>
[When using your own data: Describe the patterns, trends, or outliers
you discovered. What should viewers take away from this visualization?]
</p>
<footer>
<strong>Data Source:</strong> assets/city-population.csv
</footer>
</article>
<!-- ============================================
VISUALIZATION 4: STATIC IMAGE EXAMPLE (TEMPLATE)
For Python/R/other tools - export as image
============================================ -->
<article>
<header>
<h2>4. [Title of Your Visualization]</h2>
</header>
<h3>Context & Question</h3>
<p>
[What question does this visualization address?]
</p>
<h3>Design Decisions</h3>
<p>
[Explain your design choices. What tool did you use
to create this? Why this visualization approach?]
</p>
<!-- STATIC IMAGE -->
<!-- ==========================================
Export as PNG/SVG, save in same folder.
Include image file in your ZIP.
========================================== -->
<img src="[your-image-filename.png]"
alt="[Brief description of visualization]"
style="max-width: 100%; height: auto; border: 1px solid #ddd;">
<h3>Key Insights</h3>
<p>
[What did you discover?]
</p>
<footer>
<strong>Data Source:</strong> [Dataset information and URL]
</footer>
</article>
<!-- ============================================
VISUALIZATION 5 - Copy a template above
Minimum 5 visualizations required!
============================================ -->
<article>
<header>
<h2>5. [Title of Your Fifth Visualization]</h2>
</header>
<h3>Context & Question</h3>
<p>[Your text here]</p>
<h3>Design Decisions</h3>
<p>[Your text here]</p>
<!-- Add your visualization here (copy from examples above) -->
<div style="border: 2px dashed #ccc; padding: 40px; text-align: center;">
<p><strong>Add your visualization here</strong></p>
<p>Copy one of the templates above (Vega-Lite, Tableau, R/Python, or Image)</p>
</div>
<h3>Key Insights</h3>
<p>[Your text here]</p>
<footer>
<strong>Data Source:</strong> [Dataset information]
</footer>
</article>
<!-- ============================================
VISUALIZATION 6 - Copy a template above
This is the minimum. You can add more!
============================================ -->
<article>
<header>
<h2>6. [Title of Your Sixth Visualization]</h2>
</header>
<h3>Context & Question</h3>
<p>[Your text here]</p>
<h3>Design Decisions</h3>
<p>[Your text here]</p>
<!-- Add your visualization here -->
<div style="border: 2px dashed #ccc; padding: 40px; text-align: center;">
<p><strong>Add your visualization here</strong></p>
</div>
<h3>Key Insights</h3>
<p>[Your text here]</p>
<footer>
<strong>Data Source:</strong> [Dataset information]
</footer>
</article>
<!-- ============================================
ADD MORE VISUALIZATIONS: Copy an <article> block above
============================================ -->
<!-- ============================================
REFLECTION (Optional but recommended)
============================================ -->
<article>
<header>
<h2>Reflection</h2>
</header>
<p>
[OPTIONAL: What did you learn through creating this portfolio?
How did your understanding of data visualization principles evolve?
What challenges did you face and how did you overcome them? What
would you do differently next time?]
</p>
</article>
<!-- ============================================
AI USAGE DOCUMENTATION (If applicable)
See ASSIGNMENT.md for AI policy requirements
============================================ -->
<article>
<header>
<h2>AI Usage Documentation</h2>
</header>
<p>
[IF YOU USED AI: Document what you used it for and include shared conversation links or PDFs.
Create an AI_Documentation folder in your ZIP with these files.
IF YOU DID NOT USE AI: Delete this entire AI Usage Documentation section.]
</p>
<p>
<small><em>Remember: All AI usage must be documented. Include links to shared conversations
or PDF exports in a folder called AI_Documentation in your ZIP archive.</em></small>
</p>
</article>
<!-- ============================================
FOOTER
============================================ -->
<footer style="margin-top: 3rem; padding-top: 2rem; border-top: 1px solid #ddd;">
<p>Created by [Your Name] | Principles of Data Visualization | KSE Fall 2025</p>
<p>Last updated: [Date]</p>
</footer>
</main>
<!-- ============================================
BEFORE SUBMITTING:
✓ All [placeholders] replaced with your content
✓ Minimum 5 visualizations included
✓ Video link working and embedded
✓ Introduction explains unified theme (3-5 sentences)
✓ Each viz has: Context, Design, Insights, Source
✓ ZIP named: Portfolio_[LastName]_[FirstName].zip
✓ All datasets and AI documentation included in ZIP
📋 Complete checklist in ASSIGNMENT.md
DELETE THIS COMMENT BLOCK BEFORE SUBMITTING!
============================================ -->
</body>
</html>