我正在构建一个分面线图,并且想要修改轴标签。具体来说,我想通过完全标记每个轴的起始范围来消除视觉冗余,然后对所有后续标签使用速记标签格式。ggplot2:轴标签中的混合格式
对于x轴,我希望标签以全年开始(%Y
),否则只显示以撇号开头的十年(%y
)。对于y轴,我希望上面的范围标签后跟一个'%'符号,并且所有其他标签只显示该数字。
这里的背后这篇文章的灵感(注意y轴标签的精心调整):
我的情节是多方面的,虽然我不认为应该的问题,对于这个问题:
df <-
tribble(
~YEAR, ~FPL_100PCT, ~RENT, ~GEOG, ~ALL,
2015, .270, .223, 'Seattle', .152,
2014, .212, .225, 'Seattle', .148,
2013, .181, .217, 'Seattle', .145,
2012, .166, .199, 'Seattle', .126,
2011, .236, .238, 'Seattle', .145,
2010, .241, .249, 'Seattle', .156,
2009, .246, .247, 'Seattle', .141,
2008, .187, .216, 'Seattle', .139,
2007, .226, .232, 'Seattle', .142,
2006, .233, .249, 'Seattle', .155,
2015, .200, .210, 'KC', .122,
2014, .186, .207, 'KC', .118,
2013, .201, .215, 'KC', .124,
2012, .189, .209, 'KC', .116,
2011, .208, .230, 'KC', .119,
2010, .207, .233, 'KC', .126,
2009, .206, .244, 'KC', .121,
2008, .198, .226, 'KC', .116,
2007, .210, .229, 'KC', .120,
2006, .226, .232, 'KC', .126
) %>%
mutate(YEAR = as.Date(as.character(YEAR),format = "%Y"),
YEAR = floor_date(YEAR, unit = 'year'))%>%
gather(TBL,ESTIMATE,FPL_100PCT, RENT, ALL)
gg <- ggplot(data = df, aes(x = YEAR, y = ESTIMATE, color = TBL))
gg <- gg + geom_line()
gg <- gg + scale_y_continuous(breaks = seq(0,.5,.1),labels = scales::percent(seq(0,.5,.1)),limits = c(0,.5))
gg <- gg + scale_x_date(date_breaks = '1 year', date_labels = '%y')
gg <- gg + facet_grid(. ~GEOG)
gg <- gg + theme_minimal()
gg <- gg + theme(axis.title = element_blank(),
legend.title = element_blank(),
panel.grid.minor.x = element_blank())
gg <- gg + labs(title = 'Mobility')
谢谢!
将轴文本与主题元素对齐应该注意这一点。 –