Поскольку ваша претензия к моему комментарию была ужасно неправильной:
read.table(text="Category Amount
Angry 0.00000010230325
Fear 0.00000007393743
Happy 0.99942147731781
Neutral 0.00057571416255
Sad 0.00000002021321
Surprise 0.00000260657316", header=TRUE, stringsAsFactors=FALSE) -> dfr
ggplot(data = dfr, aes(x = Category, y = 100000000*Amount)) +
geom_bar(stat = "identity") +
scale_y_continuous(trans = "log10")

Обратите внимание, что ^^ серьезно искажает данные и требует тонны маркировки , чтобы убедиться, что ваши читатели не неверно истолковали ее.
Это:
ggplot(data = dfr, aes(x = Category, y = Amount)) +
geom_bar(stat = "identity") +
scale_y_continuous(trans = "sqrt")

* несколько лучше, но все же требует от вас значительного количества маркировки, чтобы гарантировать, что данные не искажаются.
Это:
options(scipen = 999)
dplyr::arrange(dfr, desc(Amount)) %>%
mutate(Category = factor(Category, levels = Category)) %>%
mutate(txt_col = dplyr::case_when(
Category == "Happy" ~ "white",
TRUE ~ "black"
)) %>%
ggplot(aes(x = Category, y = 1)) +
geom_tile(aes(fill = Amount), color = "white", size=0.125) +
geom_text(aes(label = Amount, color = I(txt_col)), size=2.5) +
viridis::scale_fill_viridis(direction = -1) +
coord_equal() +
labs(
x = NULL, y = NULL
) +
hrbrthemes::theme_ipsum_rc(grid="") +
theme(axis.text.y = element_blank())

- альтернативный способ отображения данных, но он не более эффективен, чем базовая, упорядоченная таблица IMO.