- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在尝试绘制由 rpart
生成的回归树使用 partykit
.假设使用的公式是 y ~ x1 + x2 + x3 + ... + xn
.我想要实现的是在终端节点中带有箱线图的树,顶部有一个标签,列出了分配给每个节点的观测值的 y 值分布的第 10、50 和 90 个百分位数,即在箱线图上方表示每个终端节点,我想显示一个标签,如“第 10 个百分点 = 200 美元,平均值 = 247 美元,第 90 个百分点 = 292 美元”。
下面的代码生成所需的树:
library("rpart")
fit <- rpart(Price ~ Mileage + Type + Country, cu.summary)
library("partykit")
tree.2 <- as.party(fit)
plot(tree.2, type = "simple", terminal_panel = node_boxplot(tree.2,
col = "black", fill = "lightgray", width = 0.5, yscale = NULL,
ylines = 3, cex = 0.5, id = TRUE))
colMeans(tree.2[12]$fitted[2])
mainlab
boxplot 面板生成函数的参数以生成包含此均值的标签:
labf <- function(node) colMeans(node$fitted[2])
plot(tree.2, type = "simple", terminal_panel = node_boxplot(tree.2,
col = "black", fill = "lightgray", width = 0.5, yscale = NULL,
ylines = 3, cex = 0.5, id = TRUE, mainlab = tf))
Error in mainlab(names(obj)[nid], sum(wn)) : unused argument (sum(wn)).
plot(tree.2, type = "simple", terminal_panel = node_boxplot(tree.2,
col = "black", fill = "lightgray", width = 0.5, yscale = NULL,
ylines = 3, cex = 0.5, id = TRUE, mainlab = colMeans(tree.2$fitted[2])))
最佳答案
原则上,您走在正确的轨道上。但如果 mainlab
应该是函数,不是node
的函数但来自 id
和 nobs
,见 ?node_boxplot
.您还可以使用 fitted
更轻松地为所有终端节点计算均值表(或某些分位数)。整棵树的数据:
tab <- tapply(tree.2$fitted[["(response)"]],
factor(tree.2$fitted[["(fitted)"]], levels = 1:length(tree.2)),
FUN = mean)
tab <- format(round(tab, digits = 3))
tab
## 1 2 3 4 5 6
## " NA" " NA" " NA" " 7629.048" " NA" "12241.552"
## 7 8 9 10 11 12
## "14846.895" "22317.727" " NA" " NA" "17607.444" "21499.714"
## 13
## "27646.000"
mainlab
编写您自己的帮助函数。 :
mlab <- function(id, nobs) paste("Mean =", tab[id])
plot(tree.2, tp_args = list(mainlab = mlab))
关于r - 派对套件 : Displaying terminal node percentile values above terminal node boxplots,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33314187/
我想通过 Seaborn 中生成的箱线图获取特定值 (即,媒体,四分位数)。例如,在下面的箱线图中(来源:link) 有没有办法获得媒体和四分位数而不是手动估计? import numpy as np
我正在尝试创建箱线图,但遇到了这个错误 - “系列”对象没有属性“箱线图” 这是我当前的代码: fig = plt.figure(figsize=(8,6)) ax = fig.gca() frame
我无法在箱形图中使用名称。它不起作用是因为我只有一个向量吗?这是我尝试过的。 tmp = c(1,1,1,1,2,2,2,2,5,5,5,5,5,6,5,4,7) boxplot(tmp) boxpl
我正在使用 seaborn 创建箱线图。当我指定一列对框进行分组/着色时,框的宽度变得非常窄,以至于很难看到。我所做的唯一更改是为hue 指定一个参数,它指向传递的数据帧中的一列。我曾尝试使用 'wi
delme <- exp(rnorm(1000,1.5,0.3)) boxplot(delme,log="y") boxplot(log10(delme)) 为什么这两幅图中的 mustache 不同
我使用以下代码对以第 5 个和第 95 个百分位数作为上限和下限的值进行箱线图。令人惊讶的是,我通过在 python 2.7.3 中使用 matplotlib 1.4.0 和在 python 3.6.
我正在尝试将箱线图的异常值颜色与美学(scale_colour_discrete)设置的填充颜色相匹配。 这是一个例子。 m <- ggplot(movies, aes(y = votes, x =
我对 R 和 ggplot 还很陌生。 我正在尝试生成一个按两个变量排序的箱线图。就我而言,物种和实验。 到目前为止我得到了什么 ggplot(DF, aes(Species, Protein, fi
我有一个数据框,其中包含“季度”和“转售价格”列。我使用数据框使用seaborn绘制了箱线图。箱线图显示季度值,例如 (2007-Q2、2007-Q3、2007-Q4、2008-Q2)。但是,我希望它
我正在根据大数据(2150000 个案例)按年份绘制两组体重的简单箱线图。除去年的最后一组外,所有组的中位数都相同,但在箱线图上,它绘制得好像与其他组一样。 #boxplot ggplot(data
我正在将 datafame 的一些列绘制成箱线图。到目前为止,没问题。如下所示,我写了一些东西并且它有效。但是:第二个图也包含第一个图的图。正如你所看到的,我用“= None”或“del value”
下面的代码有助于获得具有独特颜色框的子图。但是所有子图共享一组通用的 x 和 y 轴。我期待每个子图都有独立的轴: import pandas as pd import numpy as np imp
在关于如何制作具有方面和显着性水平的箱线图的许多问题之后,特别是 this和 this ,我还有一个小问题。 我设法生成了如下所示的图,这正是我想要的。 我现在面临的问题是当我很少或没有显着的比较时;
预先感谢您的帮助! 我正在尝试在 matplotlib 中创建箱线图,但在尝试添加标签时出现错误。这是引发错误的代码: df_selected_station_D.boxplot(column='20
我正在使用 Wisconsin dataset 。要显示 Y 轴是数据帧变量(例如:radius_mean)且 X 轴是诊断的箱线图,我执行以下操作: sns.boxplot(x='label', y
我已经为此工作了几个小时,似乎无法做到这一点。箱线图只给我平坦的垂直线,它让我发疯。无论有没有因子函数,我都得到相同的输入 ggplot(df2,aes(x = factor(Location),y=
预先感谢您的帮助! 我正在尝试在 matplotlib 中创建箱线图,但在尝试添加标签时出现错误。这是引发错误的代码: df_selected_station_D.boxplot(column='20
我正在使用 Wisconsin dataset 。要显示 Y 轴是数据帧变量(例如:radius_mean)且 X 轴是诊断的箱线图,我执行以下操作: sns.boxplot(x='label', y
我正在尝试将箱线图中的异常值涂成黑色。我设法将盒子着色为灰色,但我不知道如何为异常值着色。 (图表上的白点) boxplot(y1$Frequency..times., col="grey") 预先感
在 R 中,我试图在 ggplot 中制作一个箱线图,其中翻转坐标(水平框)使用 facets 分组。当我在不翻转坐标的情况下构建它时,ggplot 将在 scales="free"的方面内删除未使用
我是一名优秀的程序员,十分优秀!