2012-02-19 3 views
0

ggplot2 geom_lineグラフを使用して小さな問題が発生しています。y制限を設定するときに「非連続可変供給エラー」が発生する

ylimを適用すると、グラフは空になります。デフォルトモードでは、ggplotはy軸をすべての値で騒がしくしますが、グラフをそのままの状態で参照限界を17.3,17.5,17.7から17-18に少し大きくする必要があります。 ylim(c(15,30))を使用していますが、制限は増加していますが、グラフは消えています。

Iはscale_y_continuous(breaks=c(15,30))を使用してみました:

[Error: Non-continuous variable supplied to scale_y_continuous]

scale_y_discrete(breaks=c(15,30))

制限後

enter image description here

を[全Yバーが消える]: enter image description here

コマンドを使用

>head(meltedB) 
      Mouse  Type  days weight 
    1  21-H807 control 2011-09-23 27,0 
    2  21-H808 control 2011-09-23 27,8 
    3 21-H809/J125 knockout 2011-09-23 29,1 
    4  21-H810 control 2011-09-23 27,2 
    5  21-H811 control 2011-09-23 18,2 
    6  21-H812 control 2011-09-23 18,8 

DATAFRAME

ggplot(na.omit(meltedB),aes(factor(days),weight,group=Mouse)) + 
    geom_line(aes(color=Mouse),size=2) + 
    facet_grid(Type~.) 

を** NA値のプロットに苦しんでいる人のために、あなたのデータフレームにna.omit使用し、それらをプロットすることが文句を言いません。

答えて

3

この問題を診断するためにRが提供した大きなヒントが2つあります。 1つ目は、y軸目盛のラベリングに関する実際の醜い決定です。 2番目は、「非連続」変数をscale_y_continuousに渡したという明示的なエラーメッセージです。

あなたのy変数は因子(または場合によっては文字)として保存されます。コンソールに「str(meltedB)」と入力して確認します。

問題はほとんどの場合カンマです。データを読み込んだときに、dec引数をread.tableに変更する必要があります。これはデフォルトで期間に設定されています。

+0

ありがとうございました。あなたは正しいです、それは要素として保存されました。 'dec'を使用すると問題は解決しましたが、yブレークは連続していません。 私はscale_y_discrete(breaks = seq(15,40、by = 1))を使用して、15から40までの距離を1にしてブレークを取得しましたが、これらの限界内で偶発的に分離されています。とにかくおかげで –

0

問題は、ylim()と(scale_y_discrete())が自動的にlimits()を同じように設定するため、これらの新しい境界をオーバーシュートするデータを切り捨てることです。

2つの回避策

  • 使用scale_y_continuous(切れ目=のC(15,30)、限界=範囲(データセット))
  • 使用coord_cartesian(YLimプロパティ= C(15,30))の代わりに#があります(データの「拡大」のみ)
関連する問題