在 R 中,强制 x 轴刻度标记我的 ggplot 中的每个 bin (geom_col)
In R, force x-axis ticks to label each bin in my ggplot (geom_col)
背景
这可能是一个重复的问题,但我已经浏览了几篇文章,但没有找到我正在寻找的确切内容。我有一个很好的 ggplot
我用 geom_col
:
它来自 df
,看起来像这样:
我用这段代码做到了:
ggplot(data = avg_repeats_per_year, aes(x = year, y = ratio)) +
geom_col()
您可以看到 ratio
中的每个数字对应于从 2009 年到 2018 年(一年 NA
年)的不同 year
。
问题
您可以看到每个条形对应 year
中的一年,但实际上在图的 x 轴上只标记了 3 年。
我怎样才能让每个条形图都有对应年份的标签?
我试过的
我做过这样的尝试:
ggplot(data = avg_repeats_per_year, aes(x = year, y = ratio)) +
geom_col() +
scale_x_discrete(breaks = avg_repeats_per_year$year, labels = avg_repeats_per_year$year)
但是没有任何显示。有什么想法吗?
好像是数字列,改成factor
或character
应该可以了
ggplot(data = avg_repeats_per_year, aes(x = factor(year), y = ratio)) +
geom_col() +
scale_x_discrete(labels = avg_repeats_per_year$year) +
xlab("year")
-输出
数据
avg_repeats_per_year <- structure(list(year = c(2009L, 2010L, 2011L, 2012L, 2013L, 2014L,
2015L, 2016L, 2017L, 2018L, NA), ratio = c(2.28, 2.24, 2.3, 2.45,
2.32, 2.41, 2.56, 2.52, 2.63, 1.32, 0.56)), class = "data.frame", row.names = c(NA,
-11L))
背景
这可能是一个重复的问题,但我已经浏览了几篇文章,但没有找到我正在寻找的确切内容。我有一个很好的 ggplot
我用 geom_col
:
它来自 df
,看起来像这样:
我用这段代码做到了:
ggplot(data = avg_repeats_per_year, aes(x = year, y = ratio)) +
geom_col()
您可以看到 ratio
中的每个数字对应于从 2009 年到 2018 年(一年 NA
年)的不同 year
。
问题
您可以看到每个条形对应 year
中的一年,但实际上在图的 x 轴上只标记了 3 年。
我怎样才能让每个条形图都有对应年份的标签?
我试过的
我做过这样的尝试:
ggplot(data = avg_repeats_per_year, aes(x = year, y = ratio)) +
geom_col() +
scale_x_discrete(breaks = avg_repeats_per_year$year, labels = avg_repeats_per_year$year)
但是没有任何显示。有什么想法吗?
好像是数字列,改成factor
或character
应该可以了
ggplot(data = avg_repeats_per_year, aes(x = factor(year), y = ratio)) +
geom_col() +
scale_x_discrete(labels = avg_repeats_per_year$year) +
xlab("year")
-输出
数据
avg_repeats_per_year <- structure(list(year = c(2009L, 2010L, 2011L, 2012L, 2013L, 2014L,
2015L, 2016L, 2017L, 2018L, NA), ratio = c(2.28, 2.24, 2.3, 2.45,
2.32, 2.41, 2.56, 2.52, 2.63, 1.32, 0.56)), class = "data.frame", row.names = c(NA,
-11L))