Radar chart

From HandWiki
Short description: Type of chart
Example star plot from NASA, with some of the most desirable design results represented in the center
This spider chart represents the allocated budget versus actual spending for a given organization.

A radar chart is a graphical method of displaying multivariate data in the form of a two-dimensional chart of three or more quantitative variables represented on axes starting from the same point. The relative position and angle of the axes is typically uninformative, but various heuristics, such as algorithms that plot data as the maximal total area, can be applied to sort the variables (axes) into relative positions that reveal distinct correlations, trade-offs, and a multitude of other comparative measures.[1]

The radar chart is also known as web chart, spider chart, spider graph, spider web chart, star chart,[2] star plot, cobweb chart, irregular polygon, polar chart, or Kiviat diagram.[3][4] It is equivalent to a parallel coordinates plot, with the axes arranged radially.

Overview

The radar chart is a chart and/or plot that consists of a sequence of equi-angular spokes, called radii, with each spoke representing one of the variables. 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:[5]

  • Which observations are most similar, i.e., are there clusters of observations? (Radar charts are used to examine the relative values for a single data point (e.g., point 3 is large for variables 2 and 4, small for variables 1, 3, 5, and 6) and to locate similar points or dissimilar points.)[5]
  • Are there outliers?

Radar charts are a useful way to display multivariate observations with an arbitrary number of variables.[6] 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.[5] The star plot was first used by Georg von Mayr in 1877.[7][8] Radar charts differ from glyph plots in that all variables are used to construct the plotted star figure. There is no separation into foreground and background variables. Instead, the star-shaped figures are usually arranged in a rectangular array on the page. It is somewhat easier to see patterns in the data if the observations are arranged in some non-arbitrary order (if the variables are assigned to the rays of the star in some meaningful order).[9]

Applications

The main application of radar charts is to measure multivariable data being shared among similar groups, people, or objects. This means radar charts have an incredibly wide variety of uses in fields including athletics, performance metrics, life sciences, education, and business among many others.[10] These applications allow researchers to visualize data and help them compare, analyze, and effectively make decisions about datasets they are looking at based on the insights provided by the charted variables.[11]

Shohei Ohtani's batting stats vs MLB average batting stats
Figure 3. A radar chart depicting standard batting statistics from the 2021 MLB Season. 2021 MVP Shoehi Ohtani, green, can be seen performing far better than the DH, red, and MLB, blue, averages for that season, contributing to his win. Notice though that he also strikes out more often, likely being tradeoff for his increased slugging percentage. The data comes from https://www.baseball-reference.com/.

Radar charts commonly used in sports to chart players' strengths and weaknesses.[12] This is done by calculating various statistics related to the player that can tracked along the central axis of the chart. Examples include a basket players shots made, rebounds, assists, etc., or the batting or pitching stats of a baseball player. This creates a centralized visualization of the strengths and weaknesses of a player, and if overlapped with the statistics of other players or league averages, can display where a player excels and where they could improve.[13] These insights into player strengths and weakness could prove crucial to player development as it allows coaches and trainers to adjust a player's training regiment to help improve on their weaknesses. The results of the radar chart can also be useful in situational play. If a batter is shown to hit poorly against left-handed pitching, then his team knows to limit his plate appearances against left-handed pitchers, while the opposing team may try to force a situation where the batter is forced to hit against the pitcher. When used for comparison, they can also illustrate how good an athlete is, such as by a hall of fame candidate to other hall of fame candidates.

Another application of radar charts is the control of quality improvement to display the performance metrics various objects including computer programs,[14] computers, phones, vehicles, and more. Computer programmer often use analytics to test the performance of their programs versus others. An example of this where radar charts may be useful is the performance analysis of various sorting algorithms. A programmer could gather up several different sorting algorithms such as selection, bubble, and quick, then analyze the performance of these algorithms by measuring their speed, memory usage, and power usage, then graph these on a radar chart to see how each sort performs under various sizes of data. Another performance application is measuring the performance of similar cars against each other. A consumer could look at variables such as the cars’ top speed, miles per gallon, horsepower, and torque. Then after using a radar chart to visualize the data, they could decide on what car is best for them based on the results.

The performance metrics of 3 different types of vehicle
Figure 4. A radar chart illustrating the differences in performance metrics of a sedan, sports car, and pickup truck. The radar chart could be useful to shopper looking to find the best car to fit their needs, with the different vertices of the chart showing where each car performs well and where each performs poorly. The data is generalized and does not come from a specific source.

One more major usage of radar charts is in life sciences. Radar charts can be used for wide away of related datasets such as strengths and weakness of drugs and other medications.[15] Using the example of two anti-depressants, a researcher can rank variables such as efficacy, side effects, cost, etc. on a scale of one to ten. They could then graph the results using a radar chart to see the spread of variables and find how the differ, such as one anti-depressant being cheaper and quicker acting, but not having great relief over time. Meanwhile, the other anti-depressant provides stronger relief and holds up better over time but is more expensive. Another life science application is in patient analysis. Radar charts can be used to graph the variables of life affecting a person's wellness, and then be analyzed to help them. A more specific example is in the case of athletes, who’s various wellness habits such as sleep, diet, and stress are monitored to make sure they stay in peak physical condition.[16] If any areas would be shown dipping, doctors and trainers could step in to assist the athlete and improve their wellness.

The radar chart is an incredibly useful and powerful tool for data visualization. The wide array of fields they can be applied to, and the multitude of ways they can used in those fields makes them a must learn aspect of data mining and data analytics. They are incredibly useful for the finding performance of different datasets related by the same multivariable set of data, and making decisions based the analysis of those data sets. Additionally, they have relatively easy to read designs that can change colors to help differentiate the objects being looked at, use relatively less space compared to other graphs, and overall have a smooth and presentable look to them. Radar charts have some drawbacks, such as trying to use them when the variables are measured on scales that are not close to each other, and they tend to work best with less than eight to ten variables and groups of three or fewer objects.[17] Despite these drawbacks, radar charts are one of the best tools in a data analytics tool bag for both professionals and enthusiast.

Software Implementation

Software can be used to generate Radar Charts in an efficient manner. Python is one example. Within Python different libraries of code can be accessed with different functionalities. Plotly is a useful graphing library for Radar Charts in Python. Plotly supports multiple types of Radar Charts.

To create a basic Radar Chart using Plotly you will need to define a figure which consists of two lists of data, the radii and the corresponding magnitude values. Next Plotly requires you to update the figure's layout which includes aspects such as radial axis visibility and whether or not there is a legend to the graph. Once this is completed, all that is left to do is to call the show function on your figure object which will produce the Radar Chart.[18]

To create a multiple trace Radar Chart using Plotly the process is mostly the same as above with the basic Radar Chart but with one difference. Similar to the steps above you first create a figure object, but now instead of immediately filling this figure with data you instead need to call the add_trace function for each trace you want to add. Within the add_trace function the Radar Chart's radii and magnitude values are inputted for their respective trace.[18]

Plotly is not the only library available to Python to produce a Radar Chart, and Python is not the only programming language they can be produced in. Plotly stands out as a great option for producing Radar Chart's because it is easy to use and flexible. The logic is simple to follow and well documented on their website which is referenced above. The option to add traces or to just use one make it flexible. Python is a good choice for programming with data analysis. New libraries are always being created to go with the plethora that already exist and the learning curve for the language is very low making it a good choice for even those with limited programming experience.

Code Example

# Example Radar Chart with Multiple Trace

# Required import statement to use the library
import plotly.graph_objects as go

# Define a figure
fig = go.figure()

# Call the add_trace function 
fig.add_trace(go.Scatterpolar(
   r = [<magnitude values>]
   theta = <radii>
   fill = 'toself'
   name = '<trace name>'
))

# Repeat the last function call for each trace you want to add
fig.add_trace(go.Scatterpolar(
   r = [<magnitude values>]
   theta = <radii>
   fill = 'toself'
   name = '<trace name>'
))

# Update the figure's layout
fig.update_layout(
    polar = dict(
        radialaxis = dict (
               visible = True,
         ),
    ),
)

# Display the Radar Chart
fig.show()

Usage

Figure 5.  The radar chart shows 2 sets of communities (see also Community Structure) that consist of connected genomic windows which see the same NP (the names of the spokes within the pentagram). In a visual analysis, we can determine that the two communities are close in that they see similar amounts of the given NP's. The data points are represented as a percentage of the community that see the NP.

As mentioned previously the usage of radar charts is for a better visual analysis of two or more sets of data points. Often some usages of a radar chart are to show the attributes of things such as video game characters, sports players, and so on. Conversely, radar charts are also used widely in academic and research categories to allow visual analysis of data sets to then further explore more rigorously. We are able to see outliers, clusters (see also Cluster Analysis), and other trend analysis within the data that may otherwise be harder to interpret while visually viewing the data point set itself.[19] An example as shown in Figure 5 is one such usage of a radar chart. In this instance, we utilize the radar chart to visualize two genomic windows to NP's (see also Genome architecture mapping and Purine nucleoside phosphorylase) that they may or may not possess.[20] Our data set consists of fourteen numbers that represent the percentage of NP's that our genomic windows have seen. That is to say that the windows contain those NP sequences. The direct implementation for the result of this radar chart is as follows:

Python Code:

# Create a list of names for the spokes of the chart, these our the NP’s as mentioned above
labels = ['Hist1', 'LAD', 'Vmn', 'RNAPII-S2P', 'RNAPII-S5P', 'RNAPII-S7P', 'Enhancer', 'H3K9me3', 'H3K20me3', 'H3K36me3', 'NANOG', 'pou5f1', 'sox2', 'CTCF-7BWU']
# Get how many spokes there will be on the chart, which is how many labels we have
N = len(labels)
# Call the main function to create the radar chart
theta = radar_factory(N, frame='polygon')
# Initialize our given data. This will be a list of numbers that will represent the points on the chart
case_data = [(7.27, 61.81, 49.09, 20.0, 45.45, 34.54, 25.454545454545453, 16.36, 29.09090909090909, 29.09, 20.0, 23.63, 18.18, 16.36), (10.52, 59.64, 49.12, 24.561, 49.12, 36.84, 21.05, 10.52, 24.56, 26.31, 19.29, 22.80, 21.052631578947366, 22.80)]
# Give the size of the chart
fig, ax = plt.subplots(figsize=(6, 6), subplot_kw=dict(projection='radar'))
fig.subplots_adjust(top=0.85, bottom=0.05)
# The intervals of the rings within the radar chart
ax.set_rgrids([0,5,10,15,20,25,30,35,40,45,50,55,60, 65, 70])
# The title of the radar chart
title = 'Wiki Article Radar Chart Example'
ax.set_title(title,  position=(0.5, 1.1), ha='center')
# Fill in the graph with from out data 
for d in case_data:
    line = ax.plot(theta, d)
    ax.fill(theta, d,  alpha=0.15)
# Set the names within the chart from our list of names
ax.set_varlabels(labels)
# Add legend to top-left plot
legend = plt.legend(['Community 1', 'Community 2'], loc=(0.9, .95), labelspacing=0.1, fontsize='small')
# Show graph
plt.show()

Note: The code implementation above is utilizing radar_factory’s radar chart implementation along with matplotlib and other packages. This is functional code that will work if you copy and paste the radar_factory implementation and the code as seen above.[21]

Within this usage of the radar chart our given data points were very close in proximity to each other. Due to this, we could have visually determined that the windows were close in value to each other. Thus in this representation, the importance comes from its visual aspect to show the data points in an easy and agreeable format as shown. Now previewing the radar chart itself we can visually determine that most of the values in relation to the NP were very close. That is to say that the values were usually within the one to five point difference mark. Now that we have determined that fact we could then further explore why that is the case and adjust our data sets to see some possible changes in outcomes as mentioned within the see also above.

Limitations

Radar charts are primarily suited for strikingly showing outliers and commonality, or when one chart is greater in every variable than another, and primarily used for ordinal measurements – where each variable corresponds to "better" in some respect, and all variables on the same scale.

Conversely, radar charts have been criticized as poorly suited for making trade-off decisions – when one chart is greater than another on some variables, but less on others.[22]

Further, it is hard to visually compare lengths of different spokes, because radial distances are hard to judge, though concentric circles help as grid lines. Instead, one may use a simple line graph, particularly for time series.[23]

Radar charts can distort data to some extent, especially when areas are filled in, because the area contained becomes proportional to the square of the linear measures. For example, in a chart with 5 variables that range from 1 to 100, the area contained by the polygon bounded by 5 points when all measures are 90, is more than 10% larger than the same for a chart with all values of 82.

Radar charts can also become hard to visually compare between different samples on the chart when their values are close as their lines or areas bleed into each other, as shown in Figure 5 below.

Artificial structure

Radar charts impose several structures on data, which are often artificial:

  • Relatedness of neighbors – radar charts are often used when neighboring variables are unrelated, creating spurious connections.
  • Cyclic structure – the first and last variables are placed next to each other.
  • Length – variables are often most naturally ordinal: better or worse, though the degree of difference may be artificial.
  • Area – area scales as the square of values, exaggerating the effect of large numbers. For example, 2, 2 takes up 4 times the area of 1, 1. This is a general issue with area graphs, and area is hard to judge – see "Cleveland's hierarchy".[24]

For example, the alternating data 9, 1, 9, 1, 9, 1 yields a spiking radar chart (which goes in and out), while reordering the data as 9, 9, 9, 1, 1, 1 instead yields two distinct wedges (sectors).

In some cases there is a natural structure, and radar charts can be well-suited. For example, for diagrams of data that vary over a 24-hour cycle, the hourly data is naturally related to its neighbor, and has a cyclic structure, so it can naturally be displayed as a radar chart.[23][25][26]

One set of guidelines on the use of radar charts (or rather the closely related "polar area graph") is:[26]

  • you don't mind reading stacked areas instead of position along a common scale (see Cleveland's Hierarchy),
  • the data set is truly cyclic, not linear, and
  • there are two series to compare, one much smaller than the other

Data set size

Radar charts are helpful for small-to-moderate-sized multivariate data sets. Their primary weakness is that their effectiveness is limited to data sets with less than a few hundred points. After that, they tend to be overwhelming.[5]

Further, when using radar charts with multiple dimensions or samples, the radar chart may become cluttered and harder to interpret as the number of samples grows.

For example, take the batting stats table comparing MLB 2021 MVP Shohei Ohtani, vs the stats of the leagues average designated hitters and some Hall of Fame players. These stats represent the percentage of hits, home runs, strike outs, etc per at bat of a player. For more information on what each stat used in the table represents, you can refer to this reference by the MLB.[27] We will use this table below to create Radar charts comparing the 2021 MVP batting stats to the league averages for Designated Hitters and regular batters, in an attempt to visualize performance metrics and visually come to a conclusion that Shohei out performed the average player. Next we will include additional samples into the Radar chart, using Hall of Fame players Jackie Robinson, Jim Thome, and Frank Thomas to compare Shohei to a few of the greatest batters of all time. This Radar chart not only can give us intuition of how Shohei compares to the top historical players, but will also serve a purpose in showing the limitations of having too many samples in a Radar chart.

Target BA OBP SLG OPS HR% SO% BB%
MLB 0.244 0.317 0.411 0.728 0.037 0.232 0.087
DH 0.239 0.316 0.434 0.75 0.047 0.256 0.093
Shohei Ohtani 0.257 0.372 0.592 0.965 0.086 0.296 0.15
Jackie Robinson 0.313 0.41 0.477 0.887 0.0282 0.0582 0.151
Jim Thome 0.276 0.402 0.554 0.956 0.072 0.302 0.207
Frank Thomas 0.301 0.419 0.555 0.974 0.063 0.17 0.203

We can see in Figure 10 how a radar chart can be easily interpreted when the number of spokes and samples is relatively small. When we compare more samples in Figure 11, even without an area fill on the radar chart, it becomes apparent how difficult it can become to interpret or make trade-off decisions.

Figure 10. Radar chart depicting MLB 2021 MVP Shohei Ohtani batting stats vs league average
Figure 11. Comparing batting stats of 2021 MVP Shohei Ohtani to the league average and a select few Hall of Famers. Here we can see how it becomes more difficult to interpret the radar chart when more samples are added

Example

Detail for the star plot of the Cadillac Seville

The chart on the right[5] contains the star plots of 15 cars. The variable list for the sample star plot is:

  1. Price
  2. Mileage (MPG)
  3. 1978 Repair Record (1 = Worst, 5 = Best)
  4. 1977 Repair Record (1 = Worst, 5 = Best)
  5. Headroom
  6. Rear Seat Room
  7. Trunk Space
  8. Weight
  9. Length

We can look at these plots individually or we can use them to identify clusters of cars with similar features. For example, we can look at the star plot of the Cadillac Seville (the last one on the image) and see that it is one of the most expensive cars, gets below average (but not among the worst) gas mileage, has an average repair record, and has average-to-above-average roominess and size. We can then compare the Cadillac models (the last three plots) with the AMC models (the first three plots). This comparison shows distinct patterns. The AMC models tend to be inexpensive, have below average gas mileage, and are small in both height and weight and in roominess. The Cadillac models are expensive, have poor gas mileage, and are large in both size and roominess.[5]

Alternatives

One may use line graphs for time series and other data,[23] in the form of parallel coordinates.

For graphical qualitative comparison of 2-dimensional tabular data in several variables, a common alternative are Harvey balls, which are used extensively by Consumer Reports.[28] Comparison in Harvey balls (and radar charts) may be significantly aided by ordering the variables algorithmically to add order.[29]

An excellent way for visualising structures within multivariate data is offered by principal component analysis (PCA).

Another alternative is to use small, inline bar charts, which may be compared to sparklines.[29]

Although radar and polar charts are often described as the same chart types,[4] some sources make a difference between them and even consider the radar chart to be a polar chart's variation that does not display data in terms of polar coordinate.[30]

See also

References

 This article incorporates public domain material from the National Institute of Standards and Technology website https://www.nist.gov.

  1. Porter, Michael M; Niksiar, Pooya (2018). "Multidimensional mechanics: Performance mapping of natural biological systems using permutated radar charts". PLOS ONE 13 (9): e0204309. doi:10.1371/journal.pone.0204309. PMID 30265707. Bibcode2018PLoSO..1304309P. 
  2. Nancy R. Tague (2005) The quality toolbox. page 437.
  3. Kolence, Kenneth W. (1973). "The Software Empiricist". ACM SIGMETRICS Performance Evaluation Review 2 (2): 31–36. doi:10.1145/1113644.1113647. "Dr. Philip J. Kiviat suggested at a recent NBS/ACM workshop on performance measurement that a circular graph, using radii as the variable axes might be a useful form. […] I recommend they be called "Kiviat Plots" or "Kiviat Graphs" to recognize his insight as to their importance.". 
  4. 4.0 4.1 "Find Content Gaps Using Radar Charts". Content Strategy Workshops. March 3, 2015. http://www.content-workshops.com/toolbox/2015/2/find-content-gaps-using-radar-charts. 
  5. 5.0 5.1 5.2 5.3 5.4 5.5 NIST/SEMATECH (2003). Star Plot in: e-Handbook of Statistical Methods. 6/01/2003 (Date created)
  6. Chambers, John, William Cleveland, Beat Kleiner, and Paul Tukey, (1983). Graphical Methods for Data Analysis. Wadsworth. pp. 158–162
  7. Mayr, Georg von (1877) (in de), Die Gesetzmäßigkeit im Gesellschaftsleben, Munich: Oldenbourg , p.78. Linien-Diagramme im Kreise: Line charts in circles.
  8. Michael Friendly (2008). "Milestones in the history of thematic cartography, statistical graphics, and data visualization".
  9. Michael Friendly (1991). "Statistical Graphics for Multivariate Data". Paper presented at the SAS SUGI 16 Conference, Apr, 1991.
  10. Nowicki, Hannah and Merenstein, Carter. "Radar Chart CS 465: Information Visualization - Spring 2016" (in en-US). Middlebury College. https://www.cs.middlebury.edu/~candrews/showcase/infovis_techniques_s16/radar_chart/. 
  11. Wondershare EdrawMax. "What is a Radar Chart? Explained with Examples" (in en-US). Wondershare EdrawMax. https://www.edrawmax.com/radar-chart/. 
  12. Spider Graphs: Charting Basketball Statistics
  13. Seeing Data. "Making sense of data visualizations" (in en-US). Seeing Data. http://seeingdata.org/taketime/inside-the-chart-radar-chart/. 
  14. Ron Basu (2004). Implementing Quality: A Practical Guide to Tools and Techniques. p.131.
  15. Model Systems Knowledge Translation Center. "Effective Use of Radar Charts" (in en-US). Model Systems Knowledge Translation Center. https://msktc.org/lib/docs/KT_Toolkit/Charts_and_Graphs/Charts_and_Graphics_Radar_508c.pdf. 
  16. John Maguire. "De-normalized Spider and Radar Graphs" (in en-US). Kitman Labs. https://www.kitmanlabs.com/. 
  17. Sowmya (29 April 2019). "Why And When To Use A Spider And Radar Chart?" (in en-US). Pluscharts. https://www.pluscharts.com/why-and-when-to-use-spider-and-radar-chart/. 
  18. 18.0 18.1 "Radar". https://plotly.com/python/radar-chart/. 
  19. What is a spider Chart?
  20. Genome Wide Characterization of Genome Organization in Mouse ES cells, Supplementary File: GSE64881_segmentation_at_30000bp.passqc.multibam.txt.gz
  21. radar_factory implementation
  22. You are NOT spider man, so why do you use radar charts?, by Chandoo, September 18th, 2008
  23. 23.0 23.1 23.2 Peltier, Jon (2008-08-14). "Rock Around The Clock - Peltier Tech Blog". Peltiertech.com. http://peltiertech.com/WordPress/rock-around-the-clock/. 
  24. (Cleveland 1984), summarized at http://processtrends.com/toc_data_visualization.htm
  25. "Charting around the clock The Excel Charts Blog". Excelcharts.com. 2008-08-15. http://www.excelcharts.com/blog/charting-around-the-clock/. 
  26. 26.0 26.1 Clock This
  27. "Standard Stats". https://www.mlb.com/glossary/standard-stats. 
  28. "Qualitative Comparison". 11 December 2007. http://supportanalytics.com/blog/2007/12/qualitative-comparison/. 
  29. 29.0 29.1 "Information Ocean: Reorderable tables II: Bertin versus the Spiders". I-ocean.blogspot.com. 2008-09-24. http://i-ocean.blogspot.com/2008/09/reorderable-tables-ii-bertin-versus.html. 
  30. "Polar Charts (Report Builder and SSRS)". Microsoft Developer Network. https://msdn.microsoft.com/en-us/library/dd239337.aspx. 

External links

  • Star PlotNIST/SEMATECH e-Handbook of Statistical Methods