Original


Source: “[OC] Top 50 Tech Company in the US” by u/MissLittleIncognito on r/dataisbeautiful, Reddit (2023).


Objective

The data visualization showing the top 50 highest annual revenues of US tech companies was posted on the popular sub-Reddit ‘r/dataisbeautiful,’ where data enthusiasts, data scientists, graphic designers, and statisticians share interesting facts and statistics on virtually any topic they desire. This graph is part of the original multi-chart, which contains six different visualizations in total. The target audience includes the viewers and members of the ‘r/dataisbeautiful’ sub-Reddit, all of whom are interested in data visualizations and the beauty of data. The chosen visualization, a sideways bar plot, presents the top 10 companies on the y-axis and their annual revenue (dollars in billions) on the x-axis. The objective of the multi-graph visualization is to compare the top 50 tech companies by metrics such as annual revenue, income tax, revenue by state, employee size, and headquarters locations, providing viewers with insights into how the companies compare in those regards.

The visualisation chosen had the following three main issues:

  • The visualization initially used the same blue hue for both the bar plot and the background. However, the bright sky blue color used for the bar plot was overly intense and caused eye strain for viewers, making it challenging to view the graph for extended periods. To address this issue, the color contrast was adjusted to create a lighter appearance with a more favorable contrast ratio. The background was changed to white, while the bar color was adjusted to a light blue shade. This modification significantly improved the graph’s readability and made it much more comfortable to view.

  • The graph initially lacked some key numerical features to help the viewer to interpret the data. The gridlines, x-axis scales were also missing. Only the 500 (billion USD) scale point was added which is only relevant for the top 1 companies’ revenue, ignoring the other companies. Furthermore, numerical labels were missing, making it challenging for viewers to determine the precise revenue values for each company. By incorporating gridlines, scales, and numerical labels, the revised graph allows viewers to swiftly gauge revenues and make clear comparisons among the companies.

  • A few wording problems were found on the. The title, subtitle, and y axis title were tuned. While it was the original poster’s intention to display the top 50 tech companies, only the top 10 companies were able to be shown. It is however, more viable to display the top 10 companies as the difference of revenue between the bottom 40 is insignificant, and the name labels would overwhelm the graph. The title was changed to clearly represent the graph, a subtitle added to provide some more information to the viewer. The company label names which were partially showing are clearly displayed along with the x-axis label made more concise.

Reference

Code

The following code was used to fix the issues identified in the original.

library(ggplot2)
library(readr)
library(dplyr)

top_50 <- read_csv("C:/Users/Yusha/Downloads/archive/Top 50 US Tech Companies 2022 - 2023.csv")

top_50$Revenue <- as.numeric(top_50$"Annual Revenue 2022-2023 (USD in Billions)")

top_10_sorted <- top_50 %>%
  arrange(desc(Revenue)) %>% head(10)


p <- ggplot(top_10_sorted, aes(x = Revenue, reorder(`Company Name`, Revenue))) +
  geom_bar(stat = "identity", fill = "#99CCFF") +
  geom_text(aes(label = ceiling(Revenue)), vjust = -0.2, size = 3, color = "black") +
  labs(x = "Annual Revenue (Billions USD)", y = "Company Name") +
  ggtitle("Top 10 US Tech Companies by Annual Revenue") +
  labs(subtitle = "Annual revenue based on data from Top 50 US Tech Companies dataset in billions of USD") +  
  theme_minimal() +
  theme(axis.text.y = element_text(size = 8, hjust = 0),
        plot.title = element_text(hjust = -1),  
        plot.subtitle = element_text(hjust = 1.05),
        plot.margin = margin(10, 40, 10, 10, "pt"))

Data Reference

Reconstruction

The following plot fixes the main issues in the original.