Ukrainian Ports blocked by Russian agression
Ukrainian Ports that provide shipping in the Black Sea Source: https://war.ukraine.ua/food-security/ (2023).
This visualization has been updated on website to reflect end of the Black Sea Grain Initiative 25/07/2023
Objective
This Visualisation is used in the website war.ukraine.ua. This a website created by the Ukrainian government to provide information about the war in Ukraine. The website includes news articles, infographics, and videos about the war.
The visualisation shows the amount of grain exported from Ukraine’s seaports in 2021 which is now threatened by Russian aggression. The infographic shows that the ports of Chornomorsk, Pivdennyi, Mykolaiv, Odesa, and Port of Olvia were the largest exporters of grain in Ukraine in 2021.
I used these two websites to confirm the data:
The topic is for the general user and is kept very simple, it is also used to influence people such as the United Nations and other Government bodies , however the simplicity takes away from the understanding.
The visualisation chosen had the following three main issues:
• The size of each visual (sphere) is not relative to the amount distorting the values
• The text labels are too small in font making it difficult to read the Port names.
• There is no legend to describe what Mt per year represents which does not help with understanding of the volume of the data
These changes would make the visualization more informative and user-friendly.
The Data should follow these standards Clarity: The data should be presented in such a way that it leaves no room for misinterpretation or confusion.
Accuracy: The image should stay truthful to the data it represents, without any distortions or misrepresentations.
Relevance: The visualisation needs to connect with its audience, serving the purpose it was created for and staying aligned with the context.
Efficiency: The viewer should be able to grasp the information quickly, without needing to invest unnecessary effort in understanding the visualisation.
Consistency: The same style, layout, and colour scheme should be maintained throughout the visualisation to ensure a cohesive and harmonious presentation.
This visualisation does not truly represent accuracy because of the distortion of size to value represented. The efficiency and clarity is muted as it is unclear without investigation what Mt represents as a value ( I had to search elsewhere on the page to understand it means Millions of Metric Tonnes) The consistency is lacking as the size of font for ports is small for viewing.
When it comes to creating a captivating visualisation, we often find ourselves in a delicate dance between aesthetics and accuracy. A compelling and visually appealing graphic can draw in an audience, engaging them in a way that more conventional presentations of data might not. This is likely why the Spheres were used in this instance - they’re visually engaging, instantly recognisable, and can sometimes make the information more digestible to a general audience.
However, this choice doesn’t come without trade-offs. While the Spheres might have the advantage in terms of aesthetics and simplicity, they may also compromise the precision of the data representation. But let’s consider the context - in the midst of the metaphorical fog of war, perfect accuracy might take a backseat to immediate comprehension and broad support. After all, in such scenarios, rallying the troops could be more important than pointing out each individual tree in the forest of data.
Reference
Ukraine, Brand. (2023) How Russia threatens World Food Security during the war in Ukraine. Available at: https://war.ukraine.ua/food-security/ (Accessed: 20 July 2023).
Pantoliano, M. (2012) Data visualization principles: Lessons from Tufte, Moz. Available at: https://moz.com/blog/data-visualization-principles-lessons-from-tufte (Accessed: 20 July 2023).
Wickham, H. (2016). ggplot2: Elegant Graphics for Data Analysis. Springer-Verlag New York. ISBN 978-3-319-24277-4, https://ggplot2.tidyverse.org
Sievert, C. (2020). plotly: Create Interactive Web Graphics Using R. R package version 4.9.3. https://plotly.com/r/.
Bostock, M., Ooms, J. (2023). highcharter: A Wrapper for the ‘Highcharts’ Library. R package version 0.8.2. Available at: https://CRAN.R-project.org/package=highcharter (Accessed: 20 July 2023).
install.packages("ggplot2")
## package 'ggplot2' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\vidaey9\AppData\Local\Temp\13\Rtmpk1LO8z\downloaded_packages
install.packages("RColorBrewer")
## package 'RColorBrewer' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\vidaey9\AppData\Local\Temp\13\Rtmpk1LO8z\downloaded_packages
library(ggplot2)
library(RColorBrewer)
# Create a data frame
df <- data.frame(
Port = c("Chornomorsk", "Pivdennyi", "Mykolaiv", "Odesa", "Other", "Port of Olvia"),
Amount = c(14.6, 12.9, 9.7, 5.8, 3.59, 2.9)
)
#Create Plot 2 Lollipop Chart
p2 <- ggplot(df, aes(x = reorder(Port, -Amount), y = Amount)) +
geom_segment(aes(x = Port, xend = Port, y = 0, yend = Amount, color = Port), size = 1.5) +
geom_point(aes(color = Port), size = 5, alpha = 0.7) +
scale_color_brewer(palette = "Dark2") +
coord_flip() +
theme_minimal() +
theme(
legend.position = "none",
panel.grid.major = element_blank(),
panel.grid.minor = element_blank(),
axis.text.y = element_text(size = 14)
) +
xlab("Port") +
ylab("Millions of Metric tonnes per year") +
ggtitle("Yearly Shipping Quantities by Port")
# install highcharter for interactive visualisation
install.packages("highcharter")
## package 'highcharter' successfully unpacked and MD5 sums checked
##
## The downloaded binary packages are in
## C:\Users\vidaey9\AppData\Local\Temp\13\Rtmpk1LO8z\downloaded_packages
library(highcharter)
# Use hchart function to create a bar plot
hchart(df, "bar", hcaes(x = reorder(Port, Amount), y = Amount, color = Port)) %>%
hc_title(text = "Yearly Shipping Quantities by Port", style = list(fontSize = "24px", fontWeight = "bold")) %>%
hc_xAxis(title = list(text = "Port", style = list(fontSize = "20px", fontWeight = "bold")), labels = list(style = list(fontWeight = "bold")), categories = df$Port) %>%
hc_yAxis(title = list(text = "Millions of Metric tonnes per year", style = list(fontSize = "20px", fontWeight = "bold")), labels = list(style = list(fontWeight = "bold"))) %>%
hc_legend(enabled = FALSE)
Data Reference
Ukraine, Brand. (2023) How Russia threatens World Food Security during the war in Ukraine. Available at: https://war.ukraine.ua/food-security/ (Accessed: 20 July 2023).
Nations, United. (2023) Black Sea Grain Initiative | Data, United Nations. Available at: https://www.un.org/en/black-sea-grain-initiative/data (Accessed: 20 July 2023).
Кумеков, Р, (2021) The complete analysis: Ukranian Grain Exports in numbers and names (2021) Ukrainian and World Shipping News - Ukrainian Shipping Magazine - Ukrainian and World Shipping News. Available at: https://en.usm.media/the-complete-analysis-ukranian-grain-exports-in-numbers-and-names/ (Accessed: 20 July 2023).
The following plots fix the main issues in the original.
I Increased the font size of the text labels so that they are easier to read.
I Increased the size of font for Port
I Included descriptor showing what Mt means
The first visualisation resolves the main issues that were originally described. I have included the second visualisation as a Lollipop chart as I recognise the impact on visual appeal which the authors were trying for. This is a happy medium between the accuracy and visual look.