2016-10-05 29 views
0

scale_x_discrete()expand()をどのように使用して、カテゴリのx軸を展開して、ポイントの右側にラベルを配置することがプロットから外れないようにするかわかりません。ggplotでカテゴリx軸を展開

xが数値の場合、ポイントのすべてが左に移動するようにxの最大限度を調整することができます。しかし、私はカテゴリ変数でこれを行う方法を理解できません。展開された変数ラベルが ""の場合は気にしません。 x軸の最後のカテゴリ変数の右にもっと多くのスペースが必要です。ここで

が正常にこれを行う方法を説明するために使用できるデータ例である:任意およびすべてのヘルプのための

data(iris) 

library(ggplot2) 
ggplot(data = iris, aes(x = Species, y = Sepal.Width)) + 
    geom_jitter() 

おかげで、および任意の明確化の質問をすることを躊躇しないでください!

EDIT:あなただけのように、あなたのカテゴリ変数の既存のレベルに空白のレベルを追加することができ

enter image description here

+0

あなたが希望する出力の例を提供することができ、私は非常にあなたの説明は、以下のいませんよ。 –

+0

@CyrusMohammadianはい。 [Here](https://i.gyazo.com/ff4a7c18af77f67f90b78faa536c25a4.png)は、私が話していることの原油の例です。 "FakeT"は "Fake Text"を読み込むことになっていますが、X軸では表示できないので、数値ではなくカテゴリx変数であるため、展開方法を理解できません。 – medavis6

答えて

3

簡単に視覚的な説明のためのプロット:

data(iris) 

levels(iris$Species) <- c(levels(iris$Species),'') # add blank level 

library(ggplot2) 
ggplot(data = iris, aes(x = Species, y = Sepal.Width)) + 
    geom_jitter() + 
    scale_x_discrete(drop=FALSE) # don't drop unused blank level 

enter image description here

更新:または、本当にtを延長したい場合は彼はその後、あなたが最初にas.integer()を経由して、数値にカテゴリを変換することができ数値で軸をx:

data(iris) 
specVals <- levels(iris$Species) 
iris$Species <- as.integer(iris$Species) 

library(ggplot2) 
ggplot(data = iris, aes(x = Species, y = Sepal.Width)) + 
    geom_jitter(height=0) + # on 2nd thought -- don't add noise to the quantitative axis 
    scale_x_continuous(limits=c(min(iris$Species)-0.5,max(iris$Species)+1), 
        breaks=(min(iris$Species)):(max(iris$Species)+1), 
        labels=c(specVals,'')) 

enter image description here

+0

まさに私が求めていたもの。 1つのフォローアップの質問:これは、私が任意にx軸を数値で拡張できないことを意味し、空のカテゴリレベルの値だけ拡張できますか? – medavis6

+0

@ medavis6でも実行できますか?xlimまたはscale_x_continuous(limits =) – C8H10N4O2

+0

この状況では、カテゴリ変数を使用することは可能ですか?私は真にその質問をしています。 – medavis6

関連する問題