这可能是一个愿望清单的事情,不确定(即可能需要为此创建geom_pie).今天我看到了一张地图(LINK),上面有饼图.

我不想讨论饼图的优点,这更多的是我可以在ggplot中做这个练习吗?
我提供了一个下面的数据集(从我的下拉框中加载),其中包含制作纽约州地图的地图数据和一些关于各县种族百分比的纯粹数据.我将这种种族构成作为与主数据集的合并以及作为单独的数据集称为密钥.我也认为布莱恩古德里奇在关于居中县名的另一篇文章(HERE)中对我的回应将有助于这个概念.
我们如何用ggplot2制作上面的地图?
数据集和没有饼图的地图:
load(url("http://dl.dropbox.com/u/61803503/nycounty.RData"))
head(ny); head(key) #view the data set from my drop box
library(ggplot2)
ggplot(ny, aes(long, lat, group=group)) + geom_polygon(colour='black', fill=NA)
# Now how can we plot a pie chart of race on each county
# (sizing of the pie would also be controllable via a size
# parameter like other `geom_` functions).
Run Code Online (Sandbox Code Playgroud)
提前感谢您的想法.
编辑:我刚看到junkcharts的另一个案例,它尖叫着这种类型的能力:

标题很好地涵盖了它.
我有两个传说,涉及大小和颜色,并希望有一个,比如说,在图表的顶部和一个.
这是可能的,如果是的话,如何
TIA
我怎样才能让ggplot2为不同的geom提供一个单独的图例,它们都使用颜色来表示2个不同的变量.我想要3个传说,一个用于z,a和b,但是a&b似乎被组合成一个单一的图例,即使a和b代表不同的变量.我也希望能够控制每个图例中的颜色.
dat <- data.frame(
y = rnorm(200),
x = sample(c("A", "B"), 200, TRUE),
z = sample(100:200, 200, TRUE),
a = sample(c("male", "female"), 200, TRUE),
b = factor(sample(1:2, 200, TRUE))
)
ggplot(dat, aes(y = y, x = x)) +
geom_point(aes(color = a, size = z)) +
geom_boxplot(fill = NA, size=.75, aes(color=b)) +
scale_color_manual(values = c("#F8766D", "#00BFC4", "orange", "purple"))
Run Code Online (Sandbox Code Playgroud)

我有一组测井数据.在工业中,有专门的软件来生产典型的钻孔测井图.这是一个简化的:

令人兴奋的事情是:
因为这是一个非常传统的行业,我想用我的软件(我没有专业的东西,作为学生)密切复制这些图的格式.我已经使用ggplot在路径上走了一段路,但我不知道如何做一些事情.为了解决问题,这里有一些示例数据和代码:
log <- structure(list(Depth = c(282.0924, 282.2448, 282.3972, 282.5496,
282.702, 282.8544, 283.0068, 283.1592, 283.3116, 283.464, 283.6164,
283.7688, 283.9212, 284.0736, 284.226, 284.3784, 284.5308, 284.6832,
284.8356, 284.988), FOO = c(4.0054, 4.0054, 4.0054, 4.0691, 4.0691,
4.0691, 4.0674, 4.0247, 4.0247, 4.0247, 4.0362, 4.1059, 4.2019,
4.2019, 4.2019, 4.0601, 4.0601, 4.0601, 4.2025, 4.387), BAR = c(192.126,
190.2222, 188.6759, 188.6759, 188.6759, 189.7761, 189.7761, 189.7761,
189.2443, 187.2355, 184.9368, 182.5421, 181.882, 181.344, 180.9305,
180.9305, 180.9305, 181.5986, 182.4397, 182.8301)), .Names = c("Depth",
"FOO", "BAR"), …Run Code Online (Sandbox Code Playgroud)