2016-05-19 6 views
3

年と基準年との差を計算しています。私はプロットのx値として結果を使用したいと思います。しかし、正の数(-2、-1、0、+1、+2)で+記号を印刷するにはどうすればよいですか?プラス記号で正の数値を出力する

dat <- data.frame(year = c(2000, 2001, 2002, 2003, 2004), ref = rep(2002)) 
dat$diff <- dat$year - dat$ref 

ggplot(dat, aes(x = diff)) 

答えて

4

あなたはこれもあいまいsymnum機能と信頼できるpaste0で実現でき

library(ggplot2) 
dat <- data.frame(year = c(2000, 2001, 2002, 2003, 2004), ref = rep(2002)) 
dat$diff <- dat$year - dat$ref 
ggplot(dat, aes(x = diff)) + 
    scale_x_continuous(labels = function(x) sprintf("%+d", x)) 
+0

これは完璧なものですが、マイナーな詳細は1つだけです:正の数は+で0は印刷できませんか? – beetroot

+1

'' sprintf''で可能かどうかわかりません( '?sprintf'をチェックします)、' scale_x_continuous(labels = function(x)ifelse(x> 0、paste0( "+"、x)、x)) 'うまくいくはずです。 – lukeA

2

を行うことができます。ここでは、0はその前に "+"を付けません。

ggplot(dat, aes(x = diff)) + 
    scale_x_continuous(labels = function(x) paste0(symnum(x, c(-Inf, 0, Inf), c("", "+")), x)) 
関連する問題