标签: boxplot

在 facet'ed geom_boxplot 中更改晶须定义

我创建了一个facet_grid包含多个变量的箱线图。举个例子,该图可以通过以下虚拟数据重现

require(ggplot2)
require(plyr)
library(reshape2)

set.seed(1234)
x<- rnorm(100)
y.1<-rnorm(100)
y.2<-rnorm(100)
y.3<-rnorm(100)
y.4<-rnorm(100)

df<- (as.data.frame(cbind(x,y.1,y.2,y.3,y.4)))
dfmelt<-melt(df, measure.vars = 2:5)
Run Code Online (Sandbox Code Playgroud)

并将结果图创建为

dfmelt$bin <- factor(round_any(dfmelt$x,0.5))
ggplot(dfmelt, aes(x=bin, y=value, fill=variable))+
  geom_boxplot()+
  facet_grid(.~bin, scales="free")+
  labs(x="X (binned)")+
  theme(axis.text.x=element_blank())
Run Code Online (Sandbox Code Playgroud)

这给出了以下结果: 在此处输入图片说明

但是,我想重新定义箱线图晶须,使它们不代表 0.25 - 1.5 IQR / 0.75 + IQR 和异常值,而是 (i) 完整的第 5 个和第 95 个百分位数或 (ii) 数据的无穷大和最高。

r outliers ggplot2 boxplot

2
推荐指数
1
解决办法
934
查看次数

2
推荐指数
1
解决办法
3448
查看次数

在 R 中使用 ggplot2 创建多项目时间线

我正在尝试创建一个多项目时间表,其中包含项目的各个阶段,以便在一个易于可视化的地方组织我们当前的所有项目。

我最初找到了这个timeline()包,并且能够半创建我所希望的。然而,这个包似乎不是很可定制,所以我希望能完成我的时间线ggplot2()

这是我的假数据:

Phase Project StartDate EndDate  
SD Test1 2015-08-01 2015-08-31  
DD Test1 2015-08-31 2015-09-30  
CD Test1 2015-09-30 2015-11-14  
PC Test1 2015-11-14 2015-12-14  
CA Test1 2015-12-14 2016-08-10  
SD Test2 2015-09-01 2015-10-01  
DD Test2 2015-10-01 2015-10-31  
CD Test2 2015-10-31 2015-12-15  
PC Test2 2015-12-15 2016-01-14  
CA Test2 2016-01-14 2017-01-08  
SD Test3 2016-01-01 2016-01-13  
DD Test3 2016-01-13 2016-01-25  
CD Test3 2016-01-25 2016-02-12  
PC Test3 2016-02-12 2016-03-13  
CA Test3 2016-03-13 2017-01-07  
SD Test4 2015-06-01 2015-06-01  
DD Test4 2015-06-01 2015-06-01  
CD …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

2
推荐指数
1
解决办法
1562
查看次数

将点添加到多个箱线图

您将如何将点添加到多个不同长度的箱线图中?

boxplot(box1, box2, box3, box4, beside=T, col=c("grey100", "grey70", "grey50", "grey70"), names=c("box1", "box2", "box3", "box4"), main="all the boxes", las=2)
Run Code Online (Sandbox Code Playgroud)

如果我放入一些东西

points() 
Run Code Online (Sandbox Code Playgroud)

功能我不能添加多个,如果我将它们分开放置,它们将被添加到所有箱线图中,我只想看到相应的点。

r boxplot

2
推荐指数
1
解决办法
1万
查看次数

带有均值和标准差的 R 手动箱线图 (ggplot2)

我有两组平均分数和标准差,代表我们对平均估计值的信心。注意:我没有原始分数,只是表示模型输出的估计值和模型输出的估计值的 SD,围绕该平均值。

我有一个大约 20 的特征集,我想比较每个特征的平均值 +/- 标准偏差,我的 2 组中的每一个。它基本上看起来像这样:

在此处输入图片说明

ggplot() 似乎处理具有原始数据的数据,它计算每个特征数组的均值和标准差。boxplot() 的工作原理类似。

谁能帮我想出一种方法来以这种方式可视化我的结果?

visualization r boxplot

2
推荐指数
1
解决办法
1万
查看次数

绘制 R 中同一个表中两列的并排箱线图

我有以下数据:

structure(list(osc = c(14944966.1544549, 21761557.221199, 22468349.3727696, 
25347942.08608, 23753968.4211987, 21988336.4211988, 24782010.0211988, 
23466022.821199, 24862768.4211988, 24753030.8211989, 6290574.27199998, 
6347336.50713587, 6133022.93504007, 6096474.45708794, 6310948.70553584, 
6730668.06553585, 7041845.44716779, 6834310.72460792, 7099525.34016, 
7427605.81836809, 6489665.40799994, 3923620.15923189, 5597911.8079998, 
5246583.80800014, 5770297.40799987, 5486879.80800004, 6084583.80800003, 
6719183.80800007, 6575468.60799991, 10992555.0079998), phone = c(14012229.0213694, 
21428112.3570197, 21387319.7062893, 23452910.4634375, 23561326.6405997, 
21295405.7333708, 24791075.2993385, 23077156.3984319, 24595401.2681341, 
24576961.6364291, 6436497.31657422, 6273285.60788477, 5998908.36035547, 
5837113.11736719, 6138679.45996679, 6229959.76306446, 6790623.7462578, 
6752280.48147853, 6625959.55551369, 6979249.86094727, 6642155.1844375, 
3965572.43175781, 5462667.62250977, 5232575.67903125, 5466322.91543554, 
5380533.88633204, 5814654.14943164, 6482157.46073438, 6269535.74795312, 
10938578.8058379), type = c("local", "local", "local", "local", 
"local", "local", "local", "local", "local", "local", "up", "up", 
"up", …
Run Code Online (Sandbox Code Playgroud)

r boxplot

2
推荐指数
1
解决办法
2268
查看次数

限制 ggplot 中箱线图中 y 轴的范围而不影响箱线图所基于的数据

我正在使用 ggplot 创建箱线图。代码如下:

ggplot(my_data, aes(x = as.factor(viotiko), y = pd_1year, fill = as.factor(viotiko))) + geom_boxplot() +
  labs(title="Does the PD differ significantly by 'Viotiko' group?",x="Viotiko Group", y = "PD (pd_1year)") 
Run Code Online (Sandbox Code Playgroud)

这将输出以下图表:

y 轴无限制的箱线图

接下来,我想关注 y 值的范围 --[0, 0.05] -- 我再次运行更改参数的代码。我并不是要排除数据并改变均值和分布,而只是关注特定范围的 y 值。代码又是这样的:

ggplot(my_data, aes(x = as.factor(viotiko), y = pd_1year, fill = as.factor(viotiko))) + geom_boxplot() +
  labs(title="Does the PD differ significantly by 'Viotiko' group?",x="Viotiko Group", y = "PD (pd_1year)") +
  scale_y_continuous(breaks =seq(0, .05, .01), limit = c(0, 0.05))
Run Code Online (Sandbox Code Playgroud)

这返回了一个警告“删除了 173664 行包含非有限值 (stat_boxplot)”。并输出如下图:

对 y 轴设置限制后的箱线图

显然, ggplot …

r limit ggplot2 boxplot

2
推荐指数
1
解决办法
4030
查看次数

使用 ggplot2,如何在不扭曲我的 Boxplot 的情况下设置 y 轴上的刻度线间隔?

我正在使用 ggplot2 创建一个箱线图。我的 R 代码如下:

ggplot(mydata4, aes(PropertyCode,Total.Extras.Per.GN, fill=Original.Meal.Plan.Code))+
  geom_boxplot(outlier.shape=NA) +
  ylim(c(0,1000))
Run Code Online (Sandbox Code Playgroud)

这给了我以下输出:

箱线图 1

但是,在将以下代码行添加到我现有的代码后,我最终得到了图 2(如下所示):

+ scale_y_continuous(breaks = seq(0, 1000, by=100)) 
Run Code Online (Sandbox Code Playgroud)

箱线图 2

如您所见,它扭曲了整个图形。我如何维护我的图表如图 1 所示,同时在 y 轴上显示正确的间隔?

r ggplot2 boxplot

2
推荐指数
1
解决办法
8540
查看次数

为 ggplot2 中的两个构面组指定不同的 x-tick 标签

我有代表两种方法的结果的箱线图,每种方法都有两种验证方法和三种场景,使用 ggplot2 绘制。一切正常,但我想更改 x 轴刻度标签以区分每个组中使用的技术类型。

我使用了以下代码:

data <- read.csv("results.csv", header = TRUE, sep=',')

ggplot() + 
  geom_boxplot(data = data, aes(x = Validation, y = Accuracy, fill = Scenario)) +
  facet_wrap(~ Method) +
  labs(fill = "")
Run Code Online (Sandbox Code Playgroud)

其中我的数据结构如下:

Method        Validation        Scenario       Accuracy
-------------------------------------------------------
Method 1      Iterations        Scenario 1     0.90
Method 1      Iterations        Scenario 2     0.80
Method 1      Iterations        Scenario 3     0.86
Method 1      Recursive         Scenario 2     0.82
Method 2      Iterations        Scenario 1     0.69
Method 2      Recursive         Scenario 3     0.75
Run Code Online (Sandbox Code Playgroud)

并得到以下情节:

在此处输入图片说明

我只想将方法 1 和方法 …

r facet ggplot2 boxplot

2
推荐指数
1
解决办法
3371
查看次数

matplotlib:每个类别的箱线图

我的熊猫数据框有两列:categoryduration。我使用以下代码制作所有数据点的箱线图。

import matplotlib.pyplot as plt
plt.boxplot(df.duration)
plt.show()
Run Code Online (Sandbox Code Playgroud)

但是,如果我想要一个盒子 for each category,我该如何修改上面的代码?谢谢!

matplotlib boxplot pandas

2
推荐指数
1
解决办法
5240
查看次数

标签 统计

boxplot ×10

r ×8

ggplot2 ×5

matplotlib ×2

facet ×1

limit ×1

outliers ×1

pandas ×1

python ×1

visualization ×1