Original


Source: https://howmuch.net/articles/top10-most-traded-goods-us


Objective

The objective of the above visualisation is to depict both the U.S.’s top ten categories of exports and imports, thereby helping to learn about the U.S. balance of trade with other countries. This visualisation provides the import/export values for the commodities traded in the U.S.(in billion$) in 2019 with their level of significance to identify the major contributing industrial sectors for the same, which would help to ascertain which sectors are making progress and which need improvement. Also the numbers of the top imported commodities showcase which commodities are high in demand locally, and helps to decide whether the money spent on their import should change or not. Lastly, this visualisation aims to determine how the recent outbreak of ‘COVID-19’ has affected the goods traded by the U.S.

Target Audience

  • This data visualisation is important for the Government focusing on commodities imported and deciding whether to continue importing a particular commodity or produce it domestically by comparing the cost and quality of the in both circumstances, and for further policy making, like setting up trade duties and tarrifs, etc. Government also needs this informtion to study the country’s balance of trade (i.e, exports minus imports), as it directly affects currency value which could impact the exchange rates, GDP and inflation rates.

  • Researchers and economists who want to study import/export values to ascertain whether the domestic economy is in trade surplus/trade deficit, as it is an important indicator for the level of economic growth in the country. This becomes more important under recent conditions of the ‘COVID-19’ outbreak.

  • Some other audiences include foreign investors and stock market employees.

Main issues in the visualisation chosen:

  • Visual Complexity: Too many variables and picture icons in a single visualistion are increasing the complexity and time involved for its comprehension. The mirror bar plot type used here makes it difficult to make a quick visual comparison between import and export values without reading the value labels, since they both show their respective bars on opposite sides of the axis. Also, the dots arranged in the form of a bar instead of a solid colour bar adds to the visual complexity. With the data value labels provided, having the dots to count each ‘$2B’ in the total value is just redundant.

  • Deception: Each of the points arranged as a bar representing a value of ‘$2B’, clearly makes smaller value variations(<$2B) between two variables undetectable without the help of value labels. Moreover, its hard to compare two variables having close enough values difference(that is $8B) because the length of their bar would be the same and thus deceiving the viewer to some extent. The scale so used for import/export values is different in length. This would make the bar of two variables having the same value appear longer on the ‘Exports’ side, since its scale is smaller than ‘Imports’ side.

  • Bad use of colour: There is a colour palette for the dots depending upon the class in which the value of the commodity traded belongs. When the value steps into an upper value class, the colour of only subsequent dots change making it hard to notice the level of significance (in contribution to total imports/exports) of that commodity or in other words, its hard to determine visually in which value class a particular commodity belongs. Also the colours used in the palette to fill the tiny dots are too close, thereby making it hard to notice their difference, especially for a person with a colour vision deficiency.

Reference

Amercia’s Most Traded Goods in one Chart, Published: 24 March 2020. Howmuch.net : Irena(Editor). visualisation link: https://howmuch.net/articles/top10-most-traded-goods-us

Code

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

library(ggplot2)
library(readxl)
library(dplyr)
library(cowplot)

Exports_df <- data.frame(read_excel("Exports.xlsx"))  #reading in the excel file with export data
Imports_df <- data.frame(read_excel("Imports.xlsx"))  #reading in the excel file with import data

##creating vectors for final data frame to be used for plot 1
labels_1 <- as.vector(Exports_df$Product.label[2:11])
labels_short_1 <- c("Machinery(including computers)","Mineral Fuels","Electric Machinery","Aircraft,Spacecraft","Vehicles","Optical,Technical,Medical Apparatus","Plastic,Plastic Articles","Gems,Precious Metals","Pharmaceuticals","Organic Chemicals")
Export_vals <- as.vector(Exports_df$Exported.value.in.2019[2:11]/1000000) %>% round(2)

#final dataframe to be used for first plot
df1 <- data.frame(labels_short_1,Export_vals) 

#plot 1 using ggplot() function parameters
p1 <- ggplot(df1, aes(reorder(labels_short_1,Export_vals),Export_vals)) + geom_col(aes(fill = Export_vals)) +  scale_fill_distiller(type = "seq", palette = 1, direction = 1, name = "Export Contribution") + ggtitle("Top 10 commodities Exported from U.S. in 2019") + theme(plot.title = element_text(face = "bold")) + coord_flip() + theme_classic() + geom_text(aes(label=Export_vals), position = position_dodge(1), hjust = -0.1) + expand_limits(y = c(0,440)) + ylab("Export values (in US$ billions)") + xlab("Commodities")


##creating vectors for final data frame to be used for plot 2
labels_2 <- as.vector(Exports_df$Product.label[2:11])
labels_short_2 <- c("Machinery(including computers)","Electric Machinery","Vehicles","Mineral Fuels","Pharmaceuticals","Optical,Technical,Medical Apparatus","Furniture,Bedding,Lighting,Signs,Prefab Buildings","Plastic,Plastic Articles", "Gems,Precious Metals","Organic Chemicals")
Import_vals <- as.vector(Imports_df$Imported.value.in.2019[2:11]/1000000) %>% round(2)

#creating final dataframe to be used for second plot
df2 <- data.frame(labels_short_2,Import_vals) 

#plot 2 using ggplot() function parameters
p2 <- ggplot(df2, aes(reorder(labels_short_2,Import_vals),Import_vals)) + geom_col(aes(fill = Import_vals)) + scale_fill_distiller(type = "seq", palette = 2, direction = 1, name = "Import Contribution") + ggtitle("Top 10 commodities Imported in the U.S. in 2019") + theme(plot.title = element_text(face = "bold")) + coord_flip() + theme_classic() + geom_text(aes(label=Import_vals), position = position_dodge(1), hjust = -0.1) + expand_limits(y = c(0,440)) + ylab("Import values (in US$ billions)") + xlab("Commodities")

Data Reference

Reconstruction

The following plot fixes the main issues in the original.