我是一个新的 R 用户,所以如果我的问题看起来很简单,请原谅我。尽管我研究了 Cookbook 和 The Handbook of Statistical Analysis,但我一直无法根据自己的喜好构建特定的图表。
我试图绘制的两列是年龄和收入。年龄采用整数值 (40, 34, 50, ...) 而收入采用二进制值 (<= 50k, >=50k)。有 32561 行不同年龄的数据。我想创建一个以年龄为 X 轴和收入二元变量作为我的 Y 轴 plot(age,income) 的图。这当然会导致带有两条平行线的图,因为收入是一个二元变量,这很好。我试图从图中获得的信息是属于任一收入类别的给定年龄的人数。我想这样做的方式是使圆圈大小与每个收入阶层中某个年龄的人数成正比。例如,如果 25 岁的人中有 700 人在 <=50k 括号中,而 150 人在另一个括号中,则这两个点的大小将根据人数而有所不同。因此,落入 <=50k 桶的 700 人将用一个大圆圈表示,后者用一个小得多的圆圈表示。我希望所有年龄段的人都这样做......我希望这是有道理的。如果需要澄清,请告诉我。谢谢!我相信在不久的将来你会再次收到我的来信。
最佳答案
用示例数据回答这些问题更容易,但在这种情况下,很容易提出一些粗略反射(reflect)问题的东西:
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()
关于r - 具有不同点大小的散点图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15651362/