【发布时间】:2016-12-19 21:29:09
【问题描述】:
我正在构建一个多面线图并想修改轴标签。具体来说,我想通过完全标记每个轴的起始范围来消除视觉冗余,然后对所有后续标签使用速记标签格式。
对于 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')
谢谢!
【问题讨论】: