Dataset
# example dataset
df = structure(list(years = 2008:2017,
units = structure(c(1L, 2L, 4L, 5L, 3L, 6L, 7L, 8L, 9L, 10L), .Label = c("12,866,461", "13,350,011", "15,106,666", "15,361,841", "15,669,918", "16,498,204", "17,296,885", "17,611,762", "18,239,288", "20,359,883"), class = "factor")),
.Names = c("years", "units"), class = "data.frame", row.names = c(NA, -10L))
Проблема
Ваш столбец units
равен factor
, и его обновление в число довольно сложно. Проверьте это:
as.numeric(df$units)
# [1] 1 2 4 5 3 6 7 8 9 10
Это значения, которые вы выводите на ось Y. Вот почему расстояние между вашими точками кажется одинаковым, независимо от того, каковы действительные числа, и именно поэтому эти значения не отображаются на оси y, потому что вы указываете scale_y_continuous(breaks = seq(10000000,30000000,1))
(то есть, чтобы начать с 3mil.).
Решение
# update column
df$units = as.numeric(gsub(",", "", as.character(df$units), fixed = TRUE))
library(ggplot2)
ggplot(df, aes(x=years, y=units)) +
geom_point() +
geom_line() +
scale_x_continuous(breaks = seq(2008,2017,1))+
scale_y_continuous(breaks = seq(10000000,30000000,1000000)) +
labs(x = "years", y = "total traffic of passengers", title = "evolution of traffic during the past 10 years")
Обратите внимание, что я изменил шаг / расстояние между значениями вашей оси y на 1 мил. Шаг = 1 замедлит процесс и нечитаемый сюжет.
Вы можете использовать options(scipen = 999)
перед построением графика, чтобы избежать научного обозначения чисел.