简而言之,我正在寻找帮助,创建一个绘图,其中绘图的特定区域被指定为某个随机分配的观察(具有由颜色指定的特定因子)。我更喜欢ggplot2或d3。
我今天正在讨论,并试图证明即使我们随机选择观察,我们也可能选择一个感兴趣的观察。换句话说,如果每个观察被随机分配到飞镖的某个部分并且我投掷飞镖,那么很可能我的飞镖会击中一个感兴趣的观察
现在,我现在正试图创建这个飞镖靶。
我一直在搞乱ggplot2而且我已接近我想要的可视化但不完全。
首先,我尝试使用geom_polar。我为每次观察随机生成坐标
df$Coord1 <- sample(50, size = nrow(df), replace = TRUE)
df$Coord2 <- sample(50, size = nrow(df), replace = TRUE)
然后绘制它们然而,这里的问题是没有拍摄情节的所有区域。 (还有一些问题实际上是重叠的......所以如果有人也知道如何生成那些不会重叠的坐标那么好。)如果我要扔飞镖,我可能不会观察到。这是我使用的代码:
dartboard <- ggplot(df, aes(Coord1, Coord2, fill = Classification)) +
geom_tile()+coord_polar()
所以,然后我尝试用饼图。
pie <- ggplot(df, aes(x = factor(1), fill = factor(Classification))) +
geom_bar(width = 1) + coord_polar()
这很好,因为它是一个完整的圆圈,但是当我希望它们随机散布在图中时,它将分类组合在一起。
我也尝试复制这个热图创建(http://www.r-bloggers.com/controlling-heatmap-colors-with-ggplot2/),但我无法弄清楚如何使其与我的数据正确匹配。
简而言之,我正在寻找帮助,创建一个情节,其中情节的特定区域被指定为具有特定因素的特定观察。
有什么想法吗?
更新1:
此代码是我从概念层面直观地寻找的(图表的所有部分都被观察所覆盖:
df <- expand.grid(x = 1:20, y = 1:20)
samples <- c("one", "two", "three", "four", "five")
df$series <- samples[runif(n = nrow(df), min=1,max=length(samples))]
g <- ggplot(df, aes(fill=series, xmin = x, ymin = y, xmax = x+1, ymax = y+1))
g <- g + geom_rect()
g <- g + coord_polar(theta="y")
g <- g + theme(panel.grid=element_blank())
g <- g + theme(axis.text=element_blank())
g <- g + theme(axis.ticks=element_blank())
g
但是现在我想弄清楚如何将它应用到我自己的数据集中,该数据集有大约1,500个观测值。该图片中的坐标与expand.grid一起使用,所以现在我想弄清楚如何为我自己的1,500个观测值分配坐标。
更新2:
我在下面的代码中取得了相对成功。
random <- expand.grid(x = 1:40, y = 1:39)
random <- random %>%
mutate(ID = 1,
ID = cumsum(ID))
plot.data <- full_join(data, random, by = "ID")
samples <- c("UI", "IN", "OW", "BE" , "Five")
plot.data$Classification <- samples[runif(n = nrow(plot.data), min=1,max=length(samples))]
g <- ggplot(plot.data, aes(fill=Classification, xmin = x, ymin = y, xmax = x+1, ymax = y+1))
g <- g + geom_rect()
g <- g + coord_polar(theta="y")
g <- g + theme(panel.grid=element_blank())
g <- g + theme(axis.text=element_blank())
g <- g + theme(axis.ticks=element_blank())
g <- g + scale_fill_manual(values=c("dark green", "orange" , "yellow" , "red" , "green"))
g
我使用expand.grid函数为孩子分配坐标。有些观察结果被遗漏了,因为它们无法给出坐标,但没关系。
我现在唯一担心/抱怨的是一些观察结果比其他观察结果更大(因而更容易被击中)......所以我可能会检查一下热图。时间会证明。非常感谢你们的帮助。
更新3:
另一个版本(可能是最终形式):
这样,每次观察的大小大致相同。
这个热图版本的基础可以在这里找到:http://www.r-bloggers.com/controlling-heatmap-colors-with-ggplot2/但这里是我自己的代码
ggplot(plot.data, aes(x = x, y = y, fill = factor(Classification))) +
geom_tile(color = "black") +
scale_fill_manual(values=c("dark green", "orange" , "yellow" , "red" , "green")) +
theme(legend.position="none") +
theme_change
答案 0 :(得分:2)
这是怎么回事?
class StandardTextField: UITextField {
//no initializers
}