gpt4 book ai didi

r - scale_x_discrete 未显示在绘图上

转载 作者:行者123 更新时间:2023-12-01 17:45:00 25 4
gpt4 key购买 nike

我有一个如下所示的数据集:

df <- data.frame(
EventMonth = c('2015-01', '2015-02', '2015-03', '2015-04', '2015-05', '2015-06', '2015-07', '2015-08', '2015-09', '2015-10', '2015-11', '2015-12',
'2016-01', '2016-02', '2016-03', '2016-04', '2016-05', '2016-06', '2016-07', '2016-08', '2016-09', '2016-10', '2016-11', '2016-12'),
EventQuarter = c('2015-Q1', '2015-Q1', '2015-Q1', '2015-Q2', '2015-Q2', '2015-Q2', '2015-Q3', '2015-Q3', '2015-Q3', '2015-Q4', '2015-Q4', '2015-Q4',
'2016-Q1', '2016-Q1', '2016-Q1', '2016-Q2', '2016-Q2', '2016-Q2', '2016-Q3', '2016-Q3', '2016-Q3', '2016-Q4', '2016-Q4', '2016-Q4'),
score = c(2.59, 2.58, 2.82, 2.60, 2.69, 2.76, 2.68, 2.65, 2.58, 2.51, 2.90, 2.50, 2.65, 2.87, 2.48, 2.59, 2.83, 2.63, 2.73, 2.41, 2.63, 2.60, 2.64, 2.51),
stringsAsFactors = F
)

我正在使用如下命令来显示折线图:

ggplot(df, aes(EventMonth, score)) +
geom_line(stat='identity', group = 1) +
theme_few() + ylim(0, survey[item == col, max.val]) +
ylab(survey[item == col, title]) +
theme(axis.text.x = element_text(angle=90)) +
stat_smooth(aes(as.integer(as.factor(EventMonth)), score), method='loess')

这工作得很漂亮,但是 X 轴上有太多刻度线。我想每季度只显示一个刻度线。

作为起点,我尝试将其添加到命令中,以仅显示每个季度的一些任意值:

+ scale_x_discrete('Event Quarter', c(2, 5, 8, 11), c('a', 'b', 'c', 'd')

但这只会使整个 x 轴刻度和标签消失,而不会在我期望看到它们的地方显示 a、b、c、d。我做错了什么?

另外,我的 x 轴是整数轴,所以我也尝试使用scale_x_continuous,但也无法使其工作。它提示我为连续范围提供离散值:scale_x_continuous('Event Quarter', c(2, 5, 8, 11), c('a', 'b', 'c', 'd'))

最佳答案

答案是,scale_x_discrete 函数中 breaks 的值不是整数,而是到字符串值的映射。

本质上,即使在我的数据中 df$EventMonthcharacter 类型,ggplot 也会将其转换为一个因子来显示它。虽然您认为使用 1、2、3... 等值来引用 x 轴应该可行(毕竟,因子是带有一些标签的数字类型),但事实并非如此在这里工作;相反,如果您在 breaks 参数中传递字符值(即该因子的级别),它将起作用。

这是工作代码:

ggplot(df, aes(EventMonth, score)) +
geom_line(stat='identity', group = 1) +
theme_few() + ylim(0, survey[item == col, max.val]) +
ylab(survey[item == col, title]) +
theme(axis.text.x = element_text(angle=90)) +
stat_smooth(aes(as.integer(as.factor(EventMonth)), score), method='loess') +
scale_x_discrete('Event Quarter',
c('2015-02', '2015-05', '2015-08', '2015-11'),
c('2015-Q1', '2015-Q2', '2015-Q3', '2015-Q4'))

关于r - scale_x_discrete 未显示在绘图上,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47642451/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com