4

私は新しい R ユーザーなので、私の質問が単純に思えますが、ご容赦ください。Cookbook と The Handbook of Statistical Analysis を調べたにもかかわらず、自分の好みに合わせて特定のグラフを作成することができませんでした。

グラフ化しようとしている 2 つの列は、年齢と収入です。年齢は整数値 (40、34、50、...) で、収入はバイナリ値 (<= 50k、>=50k) です。さまざまな年齢の 32561 行のデータがあります。X 軸に年齢、Y 軸に収入バイナリ変数を使用したプロット (年齢、収入) を作成したいと思います。もちろん、これは 2 つの平行線を含むプロットにつながります。これは、収入が 2 値変数であるため問題ありません。プロットから取得しようとしている情報は、いずれかの収入バケットに該当する特定の年齢の人の数です。私がこれをやりたいと思っているのは、各所得階級内の特定の年齢の人々の数に比例する円のサイズを持つことです. たとえば、25 歳で 50,000 未満の範囲に属する人が 700 人で、他の範囲に属する人が 150 人いる場合、2 つのポイントのサイズは、人数によって異なります。したがって、<=50k バケットに分類された 700 人は大きな円で表され、後者ははるかに小さい円で表されます。私はこれをすべての年齢層に適用したいと考えています...これが理にかなっていることを願っています。説明が必要な場合はお知らせください。ありがとう!そう遠くない将来、また私から連絡が来ると確信しています。

4

2 に答える 2

7

例のデータを使用してこれらの質問に答える方が簡単ですが、この場合、問題を大まかに反映したものを思いつくのは簡単でした:

age = rep(c(20, 30, 40, 50, 60), 20)
income = c(rep(">50k", 80), rep("<50k", 20))

df1 = data.frame(age=age, income=income)

最初に、データの要約を生成し、count年齢と収入の各組み合わせの人の を取得します。

library(plyr)
df1_summary = ddply(
  df1,
  .(age, income),
  summarize,
  count=length(income)
  )

次に、を使用して簡単にプロットできますggplot2

ggplot(df1_summary, aes(age, income, size=count)) +
  geom_point()

カウントにマップされたサイズ

于 2013-03-27T03:29:57.777 に答える
6

そして、これは @Marius のサンプル データを使用したベース R グラフィックスを使用したバージョンです。

test <- with(df1,table(age,income))
test <- as.matrix(as.data.frame.matrix(test))
plot(
  row(test),
  col(test),
  cex=test/3,pch=20,
  xlim=c(0.5,nrow(test)+0.5),
  ylim=c(0.5,ncol(test)+0.5),
  axes=FALSE,
  ann=FALSE
)
axis(1,at=1:nrow(test),labels=rownames(test),cex.axis=0.8)
axis(2,at=1:ncol(test),labels=colnames(test),cex.axis=0.8)
title(xlab="Age Group",ylab="Income")
box()

ここに画像の説明を入力

于 2013-03-27T05:23:12.773 に答える