6

私は次のようなデータを持っています:

  • 10州
  • 各州には2つのタイプがあります
  • 各タイプには1〜29のエンティティがあります
  • 各state-entity-typeにはカウントがあります

要旨として利用可能な完全なデータ。

各エンティティのカウントの割合を視覚化しようとしています。そのために、次のコードを使用しました。

icc <- transform( icc, state=factor(state), entity=factor(entity), type=factor(type) )
p <- ggplot( icc, aes( x=state, y=count, fill=entity ) ) +
  geom_bar( stat="identity", position="stack" ) +
  facet_grid( type ~ . )
custom_theme <- theme_update(legend.position="none")
p

プロット

残念ながら、エンティティが多数ある状態タイプでは十分な固有の色が表示されないため、多くの情報が失われています。

上記のように、私は125のエンティティを持っていますが、状態タイプのほとんどのエンティティは29です。ggplot2とcolorbrewerに各エンティティタイプ内で一意の(そしてできればかなり異なる)色を割り当てるように強制する方法はありますか?

私がこれまでに思いついた唯一の方法はentity、整数に強制することです。これは機能しますが、レベル間の色の違いはあまりありません。

4

1 に答える 1

6

これがもう少し情報を与えるアプローチです。によって生成されたカラーホイールを取得しrainbow、他のすべての色について、ホイール上の反対の色と交換します。

col <- rainbow(30)
col.index <- ifelse(seq(col) %% 2, 
                    seq(col), 
                    (seq(ceiling(length(col)/2), length.out=length(col)) %% length(col)) + 1)
mixed <- col[col.index]

p <- ggplot(icc, aes(x=state, y=count, fill=entity)) +
  geom_bar(stat="identity", position="stack") +
  facet_grid( type ~ . ) + 
  scale_fill_manual(values=rep(mixed, length.out=nrow(icc)))

custom_theme <- theme_update(legend.position='none')
p

ここに画像の説明を入力してください

于 2013-02-08T20:02:59.283 に答える