From 0ea812f9df129098a0f17417c319107c303f7f8b Mon Sep 17 00:00:00 2001 From: AnamolR <44775373+AnamolR@users.noreply.github.com> Date: Fri, 25 Apr 2025 21:45:35 +0100 Subject: [PATCH 1/3] Create Data Visualization in UX file --- .../concepts/data-visualization-in-ux/data-visualization-in-ux.md | 0 1 file changed, 0 insertions(+), 0 deletions(-) create mode 100644 content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md diff --git a/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md b/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md new file mode 100644 index 00000000000..e69de29bb2d From e0e35580247b191cf5a5d2e6061335fea2d9234e Mon Sep 17 00:00:00 2001 From: AnamolR <44775373+AnamolR@users.noreply.github.com> Date: Fri, 25 Apr 2025 21:55:28 +0100 Subject: [PATCH 2/3] [Term Entry] Add Data Visualization in UX --- .../data-visualization-in-ux.md | 76 ++++++++++++++++++ media/data-viz-in-ux-img-1.png | Bin 0 -> 62053 bytes 2 files changed, 76 insertions(+) create mode 100644 media/data-viz-in-ux-img-1.png diff --git a/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md b/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md index e69de29bb2d..269cad8902a 100644 --- a/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md +++ b/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md @@ -0,0 +1,76 @@ +--- +Title: 'Data Visualization in UX' +Description: 'Data visualization in UX presents complex data visually to support user understanding and action.' +Subjects: + - 'Web Design' +Tags: + - 'UX' + - 'Data Design' + - 'Information Architecture' +CatalogContent: + - 'intro-to-ui-ux' + - 'paths/front-end-engineer-career-path' +--- + +**Data visualization in UX** refers to the design of charts, graphs, dashboards, and visual formats that help users interpret complex data at a glance. Effective data visualizations reduce cognitive load, support decision-making, and enhance the usability of data-rich digital products. + +![Map of USA that shows population density](https://raw.githubusercontent.com/Codecademy/docs/main/media/data-viz-in-ux-img-1.png) + +In user-centered design, visualizations are more than decorative as help define clear insights and interaction. + +## Where UX Meets Data Visualization + +Data visualizations show up in a wide range of digital products, each with different user needs and contexts: + +- _Dashboards for productivity tools_ + Users rely on visual summaries to track progress, spot trends, and make decisions quickly. + +- _Financial or analytics apps_ + Real-time charts and reports help users monitor accounts, campaigns, or KPIs. + +- _Health and wellness trackers_ + Visuals like line charts or goal rings help users monitor activity, mood, or progress toward health goals. + +- _Surveys and reporting tools_ + Aggregated results shown as bar graphs, heatmaps, or infographics make data more actionable. + +- _E-commerce and admin panels_ + Insights like top products, sales patterns, or user segments often need visual display for usability. + +## Principles of UX-Driven Data Visualization + +Designers must go beyond aesthetics and focus on function, clarity, and accessibility: + +- _Match the visualization to the task_ + Choose the right chart for the job. For example, line charts for trends, bar charts for comparison, pie charts for proportions. + +- _Prioritize readability over style_ + Fancy gradients and shadows may look modern but can obscure meaning or hinder interpretation. + +- _Avoid clutter and visual noise_ + Too many data points, labels, or colors can overwhelm users and increase cognitive load. + +- _Use clear labels, legends, and units_ + Every axis, value, and category should be easy to read and understand at a glance. + +- _Account for accessibility_ + Use color-blind–safe palettes, allow zoom or filtering, and support keyboard interaction when necessary. + +- _Support drill-down or customization if needed_ + Let users explore deeper insights if the data is complex or layered. + +> _Note: Data visualization is not just about summarizing — it’s about surfacing the right insight at the right time for the right person._ + +## User Needs Around Visualized Data + +- _Quick scanning and interpretation_ + Users expect to grasp the meaning of a chart or visual in a few seconds, especially in dashboard contexts. + +- _Trust and credibility_ + Visualizations must feel reliable. Poor formatting, misalignment, or visual distortion can create mistrust. + +- _Performance and responsiveness_ + Data visuals must load quickly and adapt to screen sizes without breaking the layout or resolution. + +- _Contextual support_ + Providing explanatory text, data source information, or tooltips helps users interpret correctly. diff --git a/media/data-viz-in-ux-img-1.png b/media/data-viz-in-ux-img-1.png new file mode 100644 index 0000000000000000000000000000000000000000..a290074ede3a11dae01b54f9fa9d17a2602038c0 GIT binary patch literal 62053 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 literal 0 HcmV?d00001 From a7266d3bd437ba4cbac00d571347577e309e6be4 Mon Sep 17 00:00:00 2001 From: AnamolR <44775373+AnamolR@users.noreply.github.com> Date: Wed, 27 Aug 2025 23:08:11 +0100 Subject: [PATCH 3/3] update data visualization UX guide --- .../data-visualization-in-ux.md | 113 ++++++++++++------ 1 file changed, 75 insertions(+), 38 deletions(-) diff --git a/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md b/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md index 269cad8902a..bba1fa5b57d 100644 --- a/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md +++ b/content/uiux/concepts/data-visualization-in-ux/data-visualization-in-ux.md @@ -12,65 +12,102 @@ CatalogContent: - 'paths/front-end-engineer-career-path' --- -**Data visualization in UX** refers to the design of charts, graphs, dashboards, and visual formats that help users interpret complex data at a glance. Effective data visualizations reduce cognitive load, support decision-making, and enhance the usability of data-rich digital products. +**Data visualization in UX** refers to the practice of presenting complex data through charts, graphs, dashboards, and other visual formats. These visualizations help users interpret information quickly, reduce cognitive load, and make informed decisions in digital environments. ![Map of USA that shows population density](https://raw.githubusercontent.com/Codecademy/docs/main/media/data-viz-in-ux-img-1.png) -In user-centered design, visualizations are more than decorative as help define clear insights and interaction. +In user-centered design, visualizations are not just decorative — they support insight, clarity, and interaction. -## Where UX Meets Data Visualization +## Why It Matters in UX -Data visualizations show up in a wide range of digital products, each with different user needs and contexts: +- _Reduces cognitive load_ by replacing raw data with visual summaries. +- _Supports diverse user needs_ across domains like health, finance, and admin tools. +- _Enables informed decision-making_ through intuitive data representation. -- _Dashboards for productivity tools_ - Users rely on visual summaries to track progress, spot trends, and make decisions quickly. +## Steps in the Data Visualization Process -- _Financial or analytics apps_ - Real-time charts and reports help users monitor accounts, campaigns, or KPIs. +1. _Understand user goals._ + What questions are users trying to answer? What actions should visuals support? -- _Health and wellness trackers_ - Visuals like line charts or goal rings help users monitor activity, mood, or progress toward health goals. +2. _Identify the data._ + Ensure accuracy, relevance, and timeliness. -- _Surveys and reporting tools_ - Aggregated results shown as bar graphs, heatmaps, or infographics make data more actionable. +3. _Choose the appropriate visualization type._ + Match format to function (e.g., bar for comparison, line for trend). -- _E-commerce and admin panels_ - Insights like top products, sales patterns, or user segments often need visual display for usability. +4. _Design for clarity._ + Use readable labels, accessible color palettes, and consistent formatting. -## Principles of UX-Driven Data Visualization +5. _Test with real users._ + Validate interpretation and usability. -Designers must go beyond aesthetics and focus on function, clarity, and accessibility: +6. _Refine based on feedback._ + Iterate to improve structure, flow, or interaction. -- _Match the visualization to the task_ - Choose the right chart for the job. For example, line charts for trends, bar charts for comparison, pie charts for proportions. +## Types of Visualizations in UX -- _Prioritize readability over style_ - Fancy gradients and shadows may look modern but can obscure meaning or hinder interpretation. +- _Bar charts_ for comparing categories or volumes. +- _Line charts_ to show trends or changes over time. +- _Pie or donut charts_ to represent proportions. +- _Heatmaps_ to visualize intensity or density. +- _Goal rings and progress bars_ in wellness or habit-tracking apps. +- _Tables with sparklines or micro-charts_ in dense dashboards. -- _Avoid clutter and visual noise_ - Too many data points, labels, or colors can overwhelm users and increase cognitive load. +## Benefits of Using Data Visualization -- _Use clear labels, legends, and units_ - Every axis, value, and category should be easy to read and understand at a glance. +- _Improves decision-making_ by surfacing insights at a glance. +- _Encourages engagement_ with interactive or personalized visuals. +- _Supports accessibility_ when designed with contrast, alt text, and zoom in mind. +- _Simplifies complexity_ by turning abstract values into familiar shapes or comparisons. +- _Saves time_ by eliminating the need to parse long reports or raw data. -- _Account for accessibility_ - Use color-blind–safe palettes, allow zoom or filtering, and support keyboard interaction when necessary. +## Common Limitations and Risks -- _Support drill-down or customization if needed_ - Let users explore deeper insights if the data is complex or layered. +- _Misleading visuals._ + Truncated axes or poor scaling can distort meaning. -> _Note: Data visualization is not just about summarizing — it’s about surfacing the right insight at the right time for the right person._ +- _Performance concerns._ + Complex charts may load slowly, especially on mobile. -## User Needs Around Visualized Data +- _Variable visual literacy._ + Users interpret visuals differently — legends and tooltips are essential. -- _Quick scanning and interpretation_ - Users expect to grasp the meaning of a chart or visual in a few seconds, especially in dashboard contexts. +- _Overreliance on color._ + Without accessible palettes, visuals may become unusable for some. -- _Trust and credibility_ - Visualizations must feel reliable. Poor formatting, misalignment, or visual distortion can create mistrust. +## Where It Appears in UX -- _Performance and responsiveness_ - Data visuals must load quickly and adapt to screen sizes without breaking the layout or resolution. +- _Dashboards and productivity tools._ + Used to track progress, trends, and KPIs. -- _Contextual support_ - Providing explanatory text, data source information, or tooltips helps users interpret correctly. +- _Financial and analytics apps._ + Real-time visuals support account monitoring and analysis. + +- _Health and wellness platforms._ + Charts show progress toward fitness or mental health goals. + +- _Survey and reporting tools._ + Results are visualized using bar charts, heatmaps, or infographics. + +- _E-commerce and admin panels._ + Sales trends and product performance are shown through visual metrics. + +## Principles of UX-Focused Visualization + +- _Match the visualization to the task._ + Use the right format for the user’s goal. + +- _Prioritize readability._ + Minimize unnecessary style effects that reduce clarity. + +- _Avoid clutter._ + Simplify labels, colors, and visual elements. + +- _Ensure self-explanatory visuals._ + Include clear legends, units, and axes. + +- _Support accessibility._ + Use inclusive color schemes, readable fonts, and keyboard navigation. + +- _Enable exploration when needed._ + Offer filtering, drill-down, or customization if the data is complex.