👀
Crash Visualization
  • Welcome
  • Preface
    • Who the book is written for
    • How the book is organized
  • 1. Introduction of Data Visualization
    • 1.1 What is data visualization?
    • 1.2 Why does visualization matter?
  • 2. Tricks in Visualization
    • 2.1 Choose Appropriate Chart
    • 2.2 Features of Charts
      • 2.2.1 Table
      • 2.2.2 Column Chart
      • 2.2.3 Line Chart
      • 2.2.4 Pie Chart
      • 2.2.5 Scatter Chart
      • 2.2.6 Map Chart
    • 2.3 Misused Graph
    • 2.4 Tips in Visualization
  • 3. Matplotlib
    • 3.1 Basic Concepts
    • 3.2 Line Chart
    • 3.3 Area Chart
    • 3.4 Column Chart
    • 3.5 Histogram Chart
    • 3.6 Scatter Chart
    • 3.7 Lollipop Chart
    • 3.8 Pie Chart
    • 3.9 Venn Chart
    • 3.10 Waffle Chart
    • 3.11 Animation
  • 4. Seaborn
    • 4.1 Trends
    • 4.2 Ranking
      • 4.2.1 Barplot
      • 4.2.2 Boxplot
    • 4.3 Composition
      • 4.3.1 Stacked Chart
    • 4.4 Correlation
      • 4.4.1 Scatter Plot
      • 4.4.2 Linear Relationship
      • 4.4.3 Heatmap
      • 4.4.4 Pairplot
    • 4.5 Distribution
      • 4.5.1 Boxplot
      • 4.5.2 Violin plot
      • 4.5.3 Histogram plot
      • 4.5.4 Density plot
      • 4.5.5 Joint plot
  • 5. Bokeh
    • 5.1 Basic Plotting
    • 5.2 Data Sources
    • 5.3 Annotations
    • 5.4 Categorical Data
    • 5.5 Presentation and Layouts
    • 5.6 Linking and Interactions
    • 5.7 Network Graph
    • 5.8 Widgets
  • 6. Plotly
    • 6.1 Fundamental Concepts
      • 6.1.1 Plotly Express
      • 6.1.2 Plotly Graph Objects
    • 6.2 Advanced Charts
      • 6.2.1 Advanced Scatter Chart
      • 6.2.2 Advanced Bar Chart
      • 6.2.3 Advanced Pie Chart
      • 6.2.4 Advanced Heatmap
      • 6.2.5 Sankey Chart
      • 6.2.6 Tables
    • 6.3 Statistical Charts
      • 6.3.1 Common Statistical Charts
      • 6.3.2 Dendrograms
      • 6.3.3 Radar Chart
      • 6.3.4 Polar Chart
      • 6.3.5 Streamline Chart
    • 6.4 Financial Charts
      • 6.4.1 Funnel Chart
      • 6.4.2 Candlestick Chart
      • 6.4.3 Waterfall Chart
  • Support
    • Donation
Powered by GitBook
On this page
  • 1. Simple Radar Chart
  • 2. Multiple Trace Radar Chart

Was this helpful?

  1. 6. Plotly
  2. 6.3 Statistical Charts

6.3.3 Radar Chart

Previous6.3.2 DendrogramsNext6.3.4 Polar Chart

Last updated 4 years ago

Was this helpful?

Radar charts are a useful way to display multivariate observations with an arbitrary number of variables. Each star represents a single observation. Typically, radar charts are generated in a multi-plot format with many stars on each page, and each star representing one observation.

The data length of a spoke is proportional to the magnitude of the variable for the data point relative to the maximum magnitude of the variable across all data points.

A line is drawn connecting the data values for each spoke. This gives the plot a star-like appearance and the origin of one of the popular names for this plot. The star plot can be used to answer the following questions:

  • Which observations are most similar, i.e., are there clusters of observations?

  • Are there outliers?

1. Simple Radar Chart

import pandas as pd
df = pd.DataFrame(dict(
    r=[4, 5, 2, 4, 3],
    theta=['Difficulty','Execution','Landing',
           'Style', 'Creativity']))
       
import plotly.express as px
fig = px.line_polar(df, r='r', theta='theta', line_close=True)
fig.show()

We use line_close=True for closed lines.

For a filled line in a Radar Chart, update the figure created with px.line_polar with fig.update_traces.

fig = px.line_polar(df, r='r', theta='theta', line_close=True)
fig.update_traces(fill='toself')
fig.show()

2. Multiple Trace Radar Chart

Let's try to reproduce this graph by drawing multiple traces of the radar chart.

categories = ['Craftsmanship','Leadership','Architecture',
            'Product Thinking','Technology','Agile & Planning']

fig = go.Figure()

fig.add_trace(go.Scatterpolar(
      r=[3, 3, 3, 3, 3,2],
      theta=categories,
      fill='toself',
      name='Ronaldinho'))
      
fig.add_trace(go.Scatterpolar(
      r=[2, 3, 2, 2, 2,3],
      theta=categories,
      fill='toself',
      name='Buffon'))

fig.update_layout(
  polar=dict(
    radialaxis=dict(
      visible=True,
      range=[0, 3]
    )),
  font_size=16,
  legend_font_size=16,
  template = 'plotly_dark',
  title = 'Assessing Skills and Fostering Growth')