2017-01-05 10 views
0

カテゴリのx軸の制限に問題があります。ここに私のデータフレームsub1です:ggplotのカテゴリ軸の制限に関する問題

structure(list(YR = structure(1:83, .Label = c("1886", "1888", 
"1890", "1899", "1903", "1923", "1930", "1935", "1936", "1938", 
"1939", "1940", "1942", "1943", "1946", "1947", "1948", "1949", 
"1950", "1952", "1953", "1954", "1955", "1956", "1957", "1959", 
"1960", "1961", "1962", "1963", "1964", "1965", "1966", "1967", 
"1968", "1969", "1970", "1971", "1972", "1973", "1974", "1975", 
"1976", "1977", "1978", "1979", "1980", "1981", "1982", "1983", 
"1984", "1985", "1986", "1987", "1988", "1989", "1990", "1991", 
"1992", "1993", "1994", "1995", "1996", "1997", "1998", "1999", 
"2000", "2001", "2002", "2003", "2004", "2005", "2006", "2007", 
"2008", "2009", "2010", "2011", "2012", "2013", "2014", "2015", 
"2016"), class = "factor"), Freq = c(0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 0L, 
0L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 0L, 0L, 1L, 0L, 0L, 0L, 
0L, 1L, 1L, 0L, 4L, 2L, 0L, 1L, 2L, 0L, 0L, 1L, 4L)), .Names = c("YR", 
"Freq"), row.names = 84:166, class = "data.frame") 

そして、ここでプロットスクリプトです:

ggplot(sub1, aes(x=YR,y=Freq)) + 
    scale_y_continuous(limit=c(0,8),expand=c(0, 0)) + 
    scale_x_discrete(breaks=c("1965","1970","1975","1980", 
          "1985","1990","1995","2000", 
          "2005","2010","2015")) + 
    geom_bar(stat="identity") + 
    xlab("") + ylab("No of papers") 

そして、ここでプロットだ:私はさらにいくつかのx座標を追加するときに、次に

enter image description here

軸ブレイク:

ggplot(sub1, aes(x=YR,y=Freq)) + 
    scale_y_continuous(limit=c(0,8),expand=c(0, 0)) + 
    scale_x_discrete(breaks=c("1920","1925","1930","1935","1940","1945", 
          "1950","1955","1960","1965","1970","1975", 
          "1980","1985","1990","1995","2000", 
          "2005","2010","2015")) + 
    geom_bar(stat="identity") + 
    xlab("") + ylab("No of papers") 

独特の何かが、x軸で起こる:

enter image description here

どこにバグがありますか?

+0

を、あなたのプロットの限界だけでなく、休憩を変更しようとしていますか?もしそうなら、あなたはプロットしたい年にデータセットをサブセット化するか、 'limits'引数を使います(' limits = as.character(1965:2015) ')。 – aosmith

+0

このコマンドは、軸上の「開いた」領域を取り除きませんが、ラベルの右に移動します。 – Dag

答えて

1

あなたのYR要因には年がありません。 Rはこれらが年であることは知らず、要素の一覧にすぎません。あなたがggplot実行する前に

は、このコードを含める:

sub1 <- merge(data.frame(YR=1886:2016), sub1, all.x = TRUE) 
sub1$YR <- as.factor(sub1$YR) 
sub1[is.na(sub1)] <- 0 
+0

このコードを追加しても問題は解決されず、すべてのラベル(1960〜2015)とバーはグラフの右側に残ります。 – Dag

+1

それはあなたの年が均等に間隔を置かれていないという別の問題です。因子としてのYRの格納を整数または年に切り替えることができます。通常の制限操作はggplotで動作します。 – ddunn801

関連する問題