4

4つの異なる要素をどのように区別しますか(サイズを使用しません)? ggplot2の変数を区別するために中空点と中実点を使用することは可能ですか?

test=data.frame(x=runif(12,0,1),
     y=runif(12,0,1),
     siteloc=as.factor(c('a','b','a','b','a','b','a','b','a','b','a','b')),
     modeltype=as.factor(c('q','r','s','q','r','s','q','r','s','q','r','s')),
     mth=c('Mar','Apr','May','Mar','Apr','May','Mar','Apr','May','Mar','Apr','May'),
     yr=c(2010,2011,2010,2011,2010,2011,2010,2011,2010,2011,2010,2011))

ここで、x は観測値、y はモデル化の結果であり、いくつかの要因について異なるモデル バージョンを比較したいと考えています。ありがとう!

4

3 に答える 3

5

4 つの要因に従って x と y の値を視覚的に区別/比較することは非常に難しいと思います。ファセットを使用しinteraction、たとえば使用して要素の数を減らします。

を使用した例を次に示しgeom_barます。

ここに画像の説明を入力

set.seed(10)
library(reshape2)
test.m <- melt(test,measure.vars=c('x','y'))
ggplot(test.m)+
  geom_bar(aes(x=interaction(yr,mth),y=value,
                 fill=variable),stat='identity',position='dodge')+
  facet_grid(modeltype~siteloc)
于 2013-07-28T00:57:50.997 に答える
3

interaction私はagstudyで使うのが本当に好きです - おそらく最初にこれを試してみます. しかし、物事を変更しない場合:

ファセット加工と 2 軸で 4 つの要素に対応できます。次に、2 つのメトリックxおよびyがあります。1 つのオプションは、両方のメトリックが色または形状、またはその両方で区別されるバブル チャートです (形状の重なりを少なくするためにジッターを追加します)。

testm = melt(test, id=c('siteloc', 'modeltype', 'mth', 'yr'))

# by color
ggplot(testm, aes(x=siteloc, y=modeltype, size=value, colour=variable)) +
  geom_point(shape=21, position="jitter") +
  facet_grid(mth~yr) +
  scale_size_area(max_size=40) +
  scale_shape(solid=FALSE) +
  theme_bw()

色で区別される指標

#by shape
testm$shape = as.factor(with(testm, ifelse(variable=='x', 21, 25)))

ggplot(testm, aes(x=siteloc, y=modeltype, size=value, shape=shape)) +
  geom_point(position="jitter") +
  facet_grid(mth~yr) +
  scale_size_area(max_size=40) +
  scale_shape(solid=FALSE) +
  theme_bw() 

ここに画像の説明を入力

# by shape and color
ggplot(testm, aes(x=siteloc, y=modeltype, size=value, colour=variable, shape=shape)) +
  geom_point(position="jitter") +
  facet_grid(mth~yr) +
  scale_size_area(max_size=40) +
  scale_shape(solid=FALSE) +
  theme_bw()

ここに画像の説明を入力

アップデート:

これは Dominik による最初のコメントに基づいて、(x,y) が 1:1 の線の上か下か、x/yまたはy/xの比率がどれくらい大きいかを示す試みです- 青い三角形は x/y>1 の場合、赤は赤ですそれ以外の場合は丸で囲みます (この場合は必要ありませんmelt):

test$shape = as.factor(with(test, ifelse(x/y>1, 25, 21)))
test$ratio = with(test, ifelse(x/y>1, x/y, y/x))

ggplot(test, aes(x=siteloc, y=modeltype, size=ratio, colour=shape, shape=shape)) +
  geom_point() +
  facet_grid(mth~yr) +
  scale_size_area(max_size=40) +
  scale_shape(solid=FALSE) +
  theme_bw()

ここに画像の説明を入力

于 2013-07-28T05:33:05.693 に答える