相关疑难解决方法(0)

R:在ggplot2中绘制线性判别分析的后验分类概率

使用ggord一个可以做出很好的线性判别分析ggplot2biplots(参见M. Greenacre的"实践中的Biplots"中的第11章,图11.5),如

library(MASS)
install.packages("devtools")
library(devtools)
install_github("fawda123/ggord")
library(ggord)
data(iris)
ord <- lda(Species ~ ., iris, prior = rep(1, 3)/3)
ggord(ord, iris$Species)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

我还想添加分类区域(显示为与其各自组相同颜色的实心区域,例如α= 0.5)或类别隶属度的后验概率(随后alpha根据此后验概率和相同颜色变化用于每个组)(可以这样做BiplotGUI,但我正在寻找ggplot2解决方案).谁会知道如何使用ggplot2,也许使用geom_tile

编辑:下面有人询问如何计算后验分类概率和预测类别.这是这样的:

library(MASS)
library(ggplot2)
library(scales)
fit <- lda(Species ~ ., data = iris, prior = rep(1, 3)/3)
datPred <- data.frame(Species=predict(fit)$class,predict(fit)$x)
#Create decision boundaries
fit2 <- lda(Species ~ LD1 + LD2, data=datPred, prior = rep(1, 3)/3)
ld1lim <- expand_range(c(min(datPred$LD1),max(datPred$LD1)),mul=0.05)
ld2lim <- expand_range(c(min(datPred$LD2),max(datPred$LD2)),mul=0.05)
ld1 <- seq(ld1lim[[1]], ld1lim[[2]], length.out=300)
ld2 …
Run Code Online (Sandbox Code Playgroud)

graphics r ggplot2 ggbiplot

20
推荐指数
2
解决办法
3117
查看次数

刻面ggplot的不同图例和填充颜色?

很抱歉没有包含我的问题的任何示例数据.我找不到轻松生成示例形状文件的方法.希望有经验的用户ggplot可以从下面的描述中看到我想做的事情.

我有:

  • 一个data.frameX与约样地信息(plotid,var1,var2,var3,var4,...)

  • Y具有样本图的空间信息的多边形shapefile

导入shapefile Y(with maptools)和fortifying as data.frame Z(ggplot2)可以正常工作.melt荷兰国际集团XX_melted作品同样精致.merge-ing ZX_meltedmapdf作品为好.

这意味着,现在我们有一个data.frame长形式的空间信息和var1,var2,var3,...

现在我想绘制这样的数据框:

pl1 <- ggplot(mapdf,aes(long,lat),group=group)
pl1 <- pl1 + geom_polygon(aes(group=group,fill=value),colour="black")
pl1 <- pl1 + facet_grid(variable ~ .)
pl1 <- pl1 + coord_equal(ratio = 1)
pl1
Run Code Online (Sandbox Code Playgroud)

结果是一个很好的情节,每个变量有一个面板.面板的地图是相同的,但填充颜色随变量的值而变化.到目前为止,一切都像魅力......有一个问题: …

r spatial shapefile ggplot2

16
推荐指数
2
解决办法
6584
查看次数

在ggplot2的stat_density2d中指定密度的比例

我正在寻找创建多个密度图,以制作"动画热图".

由于动画的每个帧都应该是可比较的,我希望每个图上的密度 - >颜色映射对于所有这些都是相同的,即使每个帧的数据范围发生变化.

这是我为每个单独的图表使用的代码:

ggplot(data= this_df, aes(x=X, y=Y) ) + 
    geom_point(aes(color= as.factor(condition)), alpha= .25) +
    coord_cartesian(ylim= c(0, 768), xlim= c(0,1024)) + scale_y_reverse() +
    stat_density2d(mapping= aes(alpha = ..level..), geom="polygon", bins=3, size=1)
Run Code Online (Sandbox Code Playgroud)

想象一下,我使用相同的代码,但'this_df'在每一帧上都会发生变化.因此,在一个图中,密度范围可以从0到4e-4.另一方面,密度范围为0到4e-2.

默认情况下,ggplot将为每个这些计算不同的密度 - >颜色映射.但这意味着两个图形 - 动画的两个框架 - 并不具有可比性.如果这是直方图或密度图,我只需调用coord_cartesian并更改x和y lim.但对于密度图,我不知道如何改变比例.

我能找到的最接近的是:

使用Alpha通道叠加两个ggplot2 stat_density2d图

但我没有选择将两个密度图放在同一个图上,因为我希望它们是不同的帧.

任何帮助将非常感谢!

编辑:

这是一个可重复的例子:

set.seed(4)
g = list(NA,NA)
for (i in 1:2) {

  sdev = runif(1)
  X = rnorm(1000, mean = 512, sd= 300*sdev)
  Y = rnorm(1000, mean = 384, sd= 200*sdev)

  this_df = as.data.frame( cbind(X = …
Run Code Online (Sandbox Code Playgroud)

plot r ggplot2 kernel-density

6
推荐指数
2
解决办法
9297
查看次数

标签 统计

ggplot2 ×3

r ×3

ggbiplot ×1

graphics ×1

kernel-density ×1

plot ×1

shapefile ×1

spatial ×1