我生成了两个并排的箱线图,并使用 R 中的 car 包标记了异常值。虽然这效果很好,但我不知道如何更改异常值标签的大小。我可以更改离群点的大小,但不能更改标签。
编辑:这是我的数据的一个子集
gene low_cov scaffolds
AA001 10 150
AA002 15 20
AA003 2 160
AA004 20 144
AA005 30 122
AA006 1 80
AA007 50 500
AA008 16 200
AA009 18 164
AA010 4 124
Run Code Online (Sandbox Code Playgroud)
这是我当前的代码:
gene = read.csv(file.choose(), header=T, sep='\t', row.names=1)
library(car)
par(mfrow=c(1,2))
Boxplot(gene$low_cov, data=gene, labels=row.names(gene), cex=0.2)
Boxplot(gene$scaffolds, data=gene, labels=row.names(gene), cex=0.2)
par(mfrow=c(1,1))
Run Code Online (Sandbox Code Playgroud)
有任何想法吗?
我想在 R 中绘制 Delta~Project.Types。我有 10 个项目类型。我知道如何做箱线图:箱线图(Delta~Project.Types)。但是,如何将 Fivenum(最小值、最大值、第一、第二和第三分位数)放在每个箱线图上?我该如何做才能使图像的每个箱线图都显示其五个数字?当显示值时,比较箱线图会更容易
谢谢!
我有一个包含近 4,000 个观察值的数据集,其中包含 9 个不同的组。所以我有以下变量
组: 1,2,3,....,9
性别:男、女
体重:每个人的体重
我想做的是为每个组制作成对的箱线图(男性,女性)。所以在本例中我将有 18 个箱线图。
我如何在不为每个箱线图(subset()或which())函数创建一个子集数据的情况下做到这一点。
除此之外,我对这些数据有一个小问题,有一些没有权重的观察结果,单元格是空的或有.一个点。
这是一个包含 3 组的虚构样本,其中性别 =1 表示女性,2 表示男性。
Group Sex Weight
1 1 140
1 2
1 2 160
1 1 154
1 1 127
2 2 182
2 2 192
2 1 .
2 1 147
2 1 129
3 1 124
3 2 182
3 1 .
3 2 141
3 1 148
Run Code Online (Sandbox Code Playgroud)
这个功能我没用过,dput()不知道好不好
dput(data)
structure(list(Group …Run Code Online (Sandbox Code Playgroud) 我有 2 个箱线图,我还想在其中包含一个平均值点。看来,当您包含 Horizontal=TRUE 作为参数时,points() 函数不再在箱线图上绘制点。
这是我的数据:
fired <- c(34,37,37,38,41,42,43,44,44,45,45,45,46,48,49,53,53,54,54,55,56)
Run Code Online (Sandbox Code Playgroud)
对于垂直箱线图:
> boxplot(fired,
+ main = "Fired Boxplot",
+ col=(c("gold")))
> points(mean(fired), lwd=5, col="darkred", pch=22)
Run Code Online (Sandbox Code Playgroud)
但对于水平箱线图(相同的数据和函数,但一个参数发生变化):
> boxplot(fired,
+ horizontal=TRUE,
+ main = "Fired Boxplot",
+ col=(c("gold")))
> points(mean(fired), lwd=5, col="darkred", pch=22)
Run Code Online (Sandbox Code Playgroud)
为什么它不绘制水平= TRUE 情况下的点?它只是轴上的一个值。
我正在尝试将样本大小添加到按两个级别分组的箱线图(最好在箱线图的顶部或底部)。我使用facet_grid()函数来生成面板图。然后,我尝试使用 annotate() 函数来添加样本大小,但这不起作用,因为它重复了第二个面板中的值。有没有一种简单的方法可以做到这一点?
\n\nhead(FeatherData, n=10)\n Location Status FeatherD Species ID\n## 1 TX Resident -27.41495 Carolina wren CARW (32)\n## 2 TX Resident -29.17626 Carolina wren CARW (32)\n## 3 TX Resident -31.08070 Carolina wren CARW (32)\n## 4 TX Migrant -169.19579 Yellow-rumped warbler YRWA (28)\n## 5 TX Migrant -170.42079 Yellow-rumped warbler YRWA (28)\n## 6 TX Migrant -158.66925 Yellow-rumped warbler YRWA (28)\n## 7 TX Migrant -165.55278 Yellow-rumped warbler YRWA (28)\n## 8 TX Migrant -170.43374 Yellow-rumped warbler YRWA (28)\n## 9 TX Migrant -170.21801 Yellow-rumped …Run Code Online (Sandbox Code Playgroud) 我有一个这样的数据集:
>>> print(ds.head())
date sum
0 2013-08-31 19.000
1 2013-09-01 37.000
2 2013-09-02 10.750
3 2013-09-03 21.500
4 2013-09-04 44.125
>>> print(ds.tail())
date sum
1742 2018-08-24 129.875
1743 2018-08-25 196.375
1744 2018-08-26 247.000
1745 2018-08-27 104.125
1746 2018-08-28 149.250
Run Code Online (Sandbox Code Playgroud)
该数据集包含大约 1700 行的每日数据。我想绘制一个箱线图,以便查看每月的值。像这样的东西

我需要像 JAN/FEB/MAR 等 x 轴上的月份。
如果我有每日数据集,我找不到任何可行的解决方案来实现这一目标。我想我必须先做数据准备并首先对每个月的值进行分组?或者我如何以简单快捷的方式进行编程?
我正在尝试制作一个 18 年的月降雨量和洪水频率记录的箱线图。即每个 x 刻度是月份,每个 x 刻度与两个箱线图相关联,一个是降雨量,一个是洪水频率。到目前为止,我已经设法使用 seaborn 绘制了这些图(请参阅以下代码和图像),但是我不知道如何创建带有两个 y 轴的箱线图,这是我需要的,因为每个变量的比例不同。
数据是这样的(数据集中flood_freq的最大值是7,这里没有显示):
Group Rainfall Flood_freq
0 Jan 115.679997 0
1 Jan 72.929999 0
2 Jan 39.719999 0
3 Jan 46.799999 1
4 Jan 54.989998 0
...
212 Dec 51.599998 0
213 Dec 45.359999 0
214 Dec 10.260000 0
215 Dec 52.709998 0
Run Code Online (Sandbox Code Playgroud)
这是我使用的代码:
dd=pd.melt(FBPdf,id_vars=['Group'],value_vars=['Rainfall','Flood_freq'],var_name='Data')
sns.boxplot(x='Group',y='value',data=dd,hue='Data')
Run Code Online (Sandbox Code Playgroud)
结果如下:
从那以后,我查看了 seaborn 文档,它似乎不允许 2 y 轴(带有 2 y 轴的 Seaborn boxplot)。有没有人能够为我想要实现的目标提供潜在的替代方案?上面链接中的解决方案与我遇到的这个双 y 轴和分组箱线图问题无关。
非常感谢您提前!
我刚刚开始使用 R 并尝试找出如何使用 ggplot 在箱形图上添加平均值和中位数标签。
我有一个数据集:单位、季度、天数:
dset <- read.table(text='Unit Quarter Days Z
HH 1Q 25 Y
PA 1Q 28 N
PA 1Q 10 Y
HH 1Q 53 Y
HH 1Q 12 Y
HH 1Q 20 Y
HH 1Q 43 N
PA 1Q 11 Y
PA 1Q 66 Y
PA 1Q 54 Y
PA 2Q 19 N
PA 2Q 46 Y
PA 2Q 37 Y
HH 2Q 22 Y
HH 2Q 67 Y
PA 2Q 45 Y
HH 2Q 48 Y …Run Code Online (Sandbox Code Playgroud) 我目前正在使用 制作一个ggplot2多面体图,我已经清除了异常值并将 yLim 设置为 5000。
但是,并非所有箱线图(下图开头的箱线图)都接近 5000。如何仅减少图像中选定的少数箱线图的 y 轴?我已经尝试了来自社区的多个答案,但它们似乎已经过时了。
这是我正在使用的代码:
require(reshape2)
require(ggplot2)
data_frame <- read.csv("results.csv", header=T)
p <- ggplot(data=data_frame, aes(x='', y=value)) + geom_boxplot(outlier.shape=NA, aes(fill=policy))
p <- p + facet_wrap( ~ level, scales="free") + coord_cartesian(ylim = c(0, 5000))
p <- p + xlab("") + ylab("Authorisation Time (ms)") + ggtitle("Title")
ggsave("bplots.png", plot=last_plot(), device=png())
Run Code Online (Sandbox Code Playgroud) 这是我的情节的一个例子。请注意箱线图如何彼此相邻。我想弄清楚是否有办法将箱线图堆叠在一起。
