
Solution 1 for Reodering
#==========================
# Solution 1
#==========================
# Create our orders:
df_long %>%
arrange(sector, num) %>%
mutate(my_order = row_number()) -> df_long
# Make draft plot:
library(extrafont)
my_colors <- c("#3E606F")
my_font <- "Roboto Condensed"
df_long %>%
ggplot(aes(my_order, num)) +
geom_col(fill = my_colors) +
facet_wrap(~ sector, scales = "free") +
theme_bw() +
coord_flip() +
geom_text(aes(label = num), hjust = 1.1, color = "white", size = 4) +
scale_x_continuous(breaks = df_long$my_order, labels = df_long$Algorithm) +
theme(panel.grid = element_blank()) +
scale_y_discrete(expand = c(0.01, 0)) +
theme(axis.ticks.y = element_blank()) +
theme(plot.margin = unit(c(1.2, 1.2, 1.2, 1.2), "cm")) +
labs(x = NULL, y = NULL,
title = "Top 10 algorithms & methods used by Data Scientists",
subtitle = "Latest KDnuggets Poll identifies the list of top algorithms/methods actually used by Data Scientists.\nBecause Statistics or Visualization (and several other options) are actually not algorithms,\nthus can be better described as methods or approaches.",
caption = "Data Source: https://www.kdnuggets.com")
Solution 2 for Reodering
#==========================
# Solution 2
#==========================
library(tidytext)
library(hrbrthemes)
df_long %>%
mutate(Algorithm = reorder_within(Algorithm, num, sector)) -> df_ordered
df_ordered %>%
ggplot(aes(Algorithm, num)) +
geom_col(width = 0.8) +
facet_wrap(~ sector, scales = "free_y") +
coord_flip() +
scale_x_reordered() +
theme_ft_rc(base_family = "Roboto Condensed") +
theme(strip.text.x = element_text(colour = "white", face = "bold", size = 13)) +
geom_text(aes(label = num), hjust = 1.15, color = "white", size = 4.5) +
theme(panel.grid = element_blank()) +
theme(axis.text.x = element_blank()) +
theme(axis.text.y = element_text(color = "white", size = 13)) +
theme(plot.title = element_text(size = 24)) +
theme(plot.subtitle = element_text(size = 13, color = "grey80")) +
theme(plot.caption = element_text(size = 11, face = "italic")) +
scale_y_discrete(expand = c(0.01, 0)) +
theme(plot.margin = unit(c(1.2, 1.2, 1.2, 1.2), "cm")) +
labs(x = NULL, y = NULL,
title = "Top 11 algorithms & methods used by Data Scientists",
subtitle = "Latest KDnuggets Poll identifies the list of top algorithms/methods actually used by Data Scientists.\nBecause Statistics or Visualization (and several other options) are actually not algorithms,\nthus can be better described as methods or approaches.",
caption = "Data Source: https://www.kdnuggets.com")
LS0tDQp0aXRsZTogIlJlb2RlcmluZyBmb3IgR3JvdXBlZCBCYXJwbG90Ig0KYXV0aG9yOiAiTmd1eWVuIENoaSBEdW5nIg0Kc3VidGl0bGU6ICJEYWlseSBHcmFwaCBTZXJpZXMiDQpvdXRwdXQ6DQogIGh0bWxfZG9jdW1lbnQ6DQogICAgY29kZV9kb3dubG9hZDogeWVzDQogICAgIyBjb2RlX2ZvbGRpbmc6IGhpZGUNCiAgICBoaWdobGlnaHQ6IHplbmJ1cm4NCiAgICB0aGVtZTogZmxhdGx5DQogICAgdG9jOiB5ZXMNCiAgICB0b2NfZmxvYXQ6IHllcw0KICB3b3JkX2RvY3VtZW50Og0KICAgIHRvYzogeWVzDQotLS0NCg0KYGBge3Igc2V0dXAsaW5jbHVkZT1GQUxTRX0NCmtuaXRyOjpvcHRzX2NodW5rJHNldChlY2hvID0gVFJVRSwgd2FybmluZyA9IEZBTFNFLCBtZXNzYWdlID0gRkFMU0UsIGZpZy5yZXRpbmE9MikNCmBgYA0KDQohW10oQzpcXFVzZXJzXFxaYm9va1xcRGVza3RvcFxccGljXFxtdWx0aV9iYXIuanBnKQ0KDQoNCiMgQ29sbGVjdCBEYXRhDQoNCmBgYHtyfQ0KDQojPT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgIENvbGxlY3QgYW5kIGNsZWFuIGRhdGENCiM9PT09PT09PT09PT09PT09PT09PT09PT09PQ0KDQojIENsZWFyIHdvcmtzcGFjZTogDQpybShsaXN0ID0gbHMoKSkNCg0KDQojIExPYWQgc29tZSBSIHBhY2thZ2VzOiANCmxpYnJhcnkodGlkeXZlcnNlKQ0KbGlicmFyeShydmVzdCkNCg0KIyBDb2xsZWN0IGFuZCBjbGVhbiBkYXRhOiANCg0KbGluayA8LSAiaHR0cHM6Ly93d3cua2RudWdnZXRzLmNvbS8yMDE2LzA5L3BvbGwtYWxnb3JpdGhtcy11c2VkLWRhdGEtc2NpZW50aXN0cy5odG1sIg0KDQoNCmxpbmsgJT4lIA0KICByZWFkX2h0bWwoKSAlPiUgDQogIGh0bWxfbm9kZXMoeHBhdGggPSAnLy8qW0BpZD0icG9zdC0iXS90YWJsZVsyXScpICU+JSANCiAgaHRtbF90YWJsZShmaWxsID0gVFJVRSkgJT4lIA0KICAuW1sxXV0gJT4lIA0KICBzZWxlY3QoLUFsbCkgJT4lIA0KICBtdXRhdGUoQWxnb3JpdGhtID0gZmFjdG9yKEFsZ29yaXRobSkpICU+JSANCiAgbXV0YXRlX2lmKGlzLmNoYXJhY3RlciwgZnVuY3Rpb24oeCkge3N0cl9yZXBsYWNlX2FsbCh4LCAiW14wLTldIiwgIiIpICU+JSBhcy5udW1lcmljKCl9KSAlPiUgDQogIGdhdGhlcihzZWN0b3IsIG51bSwgLUFsZ29yaXRobSkgLT4gZGZfbG9uZw0KDQpgYGANCg0KDQojIFNvbHV0aW9uIDEgZm9yIFJlb2RlcmluZw0KDQpgYGB7ciwgZXZhbD1GQUxTRX0NCiM9PT09PT09PT09PT09PT09PT09PT09PT09PQ0KIyAgICAgICBTb2x1dGlvbiAxDQojPT09PT09PT09PT09PT09PT09PT09PT09PT0NCg0KIyBDcmVhdGUgb3VyIG9yZGVyczogDQoNCmRmX2xvbmcgJT4lIA0KICBhcnJhbmdlKHNlY3RvciwgbnVtKSAlPiUgDQogIG11dGF0ZShteV9vcmRlciA9IHJvd19udW1iZXIoKSkgLT4gZGZfbG9uZw0KDQojIE1ha2UgZHJhZnQgcGxvdDogDQoNCmxpYnJhcnkoZXh0cmFmb250KQ0KDQpteV9jb2xvcnMgPC0gYygiIzNFNjA2RiIpDQpteV9mb250IDwtICJSb2JvdG8gQ29uZGVuc2VkIg0KDQpkZl9sb25nICU+JSANCiAgZ2dwbG90KGFlcyhteV9vcmRlciwgbnVtKSkgKw0KICBnZW9tX2NvbChmaWxsID0gbXlfY29sb3JzKSArDQogIGZhY2V0X3dyYXAofiBzZWN0b3IsIHNjYWxlcyA9ICJmcmVlIikgKw0KICB0aGVtZV9idygpICsNCiAgY29vcmRfZmxpcCgpICsgDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBudW0pLCBoanVzdCA9IDEuMSwgY29sb3IgPSAid2hpdGUiLCBzaXplID0gNCkgKyANCiAgc2NhbGVfeF9jb250aW51b3VzKGJyZWFrcyA9IGRmX2xvbmckbXlfb3JkZXIsIGxhYmVscyA9IGRmX2xvbmckQWxnb3JpdGhtKSArDQogIHRoZW1lKHBhbmVsLmdyaWQgPSBlbGVtZW50X2JsYW5rKCkpICsgDQogIHNjYWxlX3lfZGlzY3JldGUoZXhwYW5kID0gYygwLjAxLCAwKSkgKyANCiAgdGhlbWUoYXhpcy50aWNrcy55ID0gZWxlbWVudF9ibGFuaygpKSArIA0KICB0aGVtZShwbG90Lm1hcmdpbiA9IHVuaXQoYygxLjIsIDEuMiwgMS4yLCAxLjIpLCAiY20iKSkgKyANCiAgbGFicyh4ID0gTlVMTCwgeSA9IE5VTEwsIA0KICAgICAgIHRpdGxlID0gIlRvcCAxMCBhbGdvcml0aG1zICYgbWV0aG9kcyB1c2VkIGJ5IERhdGEgU2NpZW50aXN0cyIsIA0KICAgICAgIHN1YnRpdGxlID0gIkxhdGVzdCBLRG51Z2dldHMgUG9sbCBpZGVudGlmaWVzIHRoZSBsaXN0IG9mIHRvcCBhbGdvcml0aG1zL21ldGhvZHMgYWN0dWFsbHkgdXNlZCBieSBEYXRhIFNjaWVudGlzdHMuXG5CZWNhdXNlIFN0YXRpc3RpY3Mgb3IgVmlzdWFsaXphdGlvbiAoYW5kIHNldmVyYWwgb3RoZXIgb3B0aW9ucykgYXJlIGFjdHVhbGx5IG5vdCBhbGdvcml0aG1zLFxudGh1cyBjYW4gYmUgYmV0dGVyIGRlc2NyaWJlZCBhcyBtZXRob2RzIG9yIGFwcHJvYWNoZXMuIiwgDQogICAgICAgY2FwdGlvbiA9ICJEYXRhIFNvdXJjZTogaHR0cHM6Ly93d3cua2RudWdnZXRzLmNvbSIpDQoNCg0KYGBgDQoNCiMgU29sdXRpb24gMiBmb3IgUmVvZGVyaW5nDQoNCg0KYGBge3IsIGV2YWw9RkFMU0V9DQogIA0KDQojPT09PT09PT09PT09PT09PT09PT09PT09PT0NCiMgICAgICAgU29sdXRpb24gMg0KIz09PT09PT09PT09PT09PT09PT09PT09PT09DQoNCmxpYnJhcnkodGlkeXRleHQpDQpsaWJyYXJ5KGhyYnJ0aGVtZXMpDQoNCg0KZGZfbG9uZyAlPiUgDQogIG11dGF0ZShBbGdvcml0aG0gPSByZW9yZGVyX3dpdGhpbihBbGdvcml0aG0sIG51bSwgc2VjdG9yKSkgLT4gZGZfb3JkZXJlZA0KDQoNCmRmX29yZGVyZWQgJT4lIA0KICBnZ3Bsb3QoYWVzKEFsZ29yaXRobSwgbnVtKSkgKyANCiAgZ2VvbV9jb2wod2lkdGggPSAwLjgpICsgDQogIGZhY2V0X3dyYXAofiBzZWN0b3IsIHNjYWxlcyA9ICJmcmVlX3kiKSArIA0KICBjb29yZF9mbGlwKCkgKyANCiAgc2NhbGVfeF9yZW9yZGVyZWQoKSArIA0KICB0aGVtZV9mdF9yYyhiYXNlX2ZhbWlseSA9ICJSb2JvdG8gQ29uZGVuc2VkIikgKyANCiAgdGhlbWUoc3RyaXAudGV4dC54ID0gZWxlbWVudF90ZXh0KGNvbG91ciA9ICJ3aGl0ZSIsIGZhY2UgPSAiYm9sZCIsIHNpemUgPSAxMykpICsgDQogIGdlb21fdGV4dChhZXMobGFiZWwgPSBudW0pLCBoanVzdCA9IDEuMTUsIGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDQuNSkgKyANCiAgdGhlbWUocGFuZWwuZ3JpZCA9IGVsZW1lbnRfYmxhbmsoKSkgKyANCiAgdGhlbWUoYXhpcy50ZXh0LnggPSBlbGVtZW50X2JsYW5rKCkpICsgDQogIHRoZW1lKGF4aXMudGV4dC55ID0gZWxlbWVudF90ZXh0KGNvbG9yID0gIndoaXRlIiwgc2l6ZSA9IDEzKSkgKyANCiAgdGhlbWUocGxvdC50aXRsZSA9IGVsZW1lbnRfdGV4dChzaXplID0gMjQpKSArIA0KICB0aGVtZShwbG90LnN1YnRpdGxlID0gZWxlbWVudF90ZXh0KHNpemUgPSAxMywgY29sb3IgPSAiZ3JleTgwIikpICsgDQogIHRoZW1lKHBsb3QuY2FwdGlvbiA9IGVsZW1lbnRfdGV4dChzaXplID0gMTEsIGZhY2UgPSAiaXRhbGljIikpICsgDQogIHNjYWxlX3lfZGlzY3JldGUoZXhwYW5kID0gYygwLjAxLCAwKSkgKyANCiAgdGhlbWUocGxvdC5tYXJnaW4gPSB1bml0KGMoMS4yLCAxLjIsIDEuMiwgMS4yKSwgImNtIikpICsgDQogIGxhYnMoeCA9IE5VTEwsIHkgPSBOVUxMLCANCiAgICAgICB0aXRsZSA9ICJUb3AgMTEgYWxnb3JpdGhtcyAmIG1ldGhvZHMgdXNlZCBieSBEYXRhIFNjaWVudGlzdHMiLCANCiAgICAgICBzdWJ0aXRsZSA9ICJMYXRlc3QgS0RudWdnZXRzIFBvbGwgaWRlbnRpZmllcyB0aGUgbGlzdCBvZiB0b3AgYWxnb3JpdGhtcy9tZXRob2RzIGFjdHVhbGx5IHVzZWQgYnkgRGF0YSBTY2llbnRpc3RzLlxuQmVjYXVzZSBTdGF0aXN0aWNzIG9yIFZpc3VhbGl6YXRpb24gKGFuZCBzZXZlcmFsIG90aGVyIG9wdGlvbnMpIGFyZSBhY3R1YWxseSBub3QgYWxnb3JpdGhtcyxcbnRodXMgY2FuIGJlIGJldHRlciBkZXNjcmliZWQgYXMgbWV0aG9kcyBvciBhcHByb2FjaGVzLiIsIA0KICAgICAgIGNhcHRpb24gPSAiRGF0YSBTb3VyY2U6IGh0dHBzOi8vd3d3LmtkbnVnZ2V0cy5jb20iKQ0KDQoNCg0KDQpgYGANCg0KDQo=