我在这篇文章中看到了这个精彩的箱形图(图2).

正如您所看到的,这是一个箱线图,其上叠加了黑点的散布:x索引黑点(按随机顺序),y是感兴趣的变量.我想用Matplotlib做类似的事情,但我不知道从哪里开始.到目前为止,我在网上发现的箱形图并不那么酷,看起来像这样:

matplotlib的文档:http: //matplotlib.org/api/pyplot_api.html#matplotlib.pyplot.boxplot
如何着色箱形图:https: //github.com/jbmouret/matplotlib_for_papers#colored-boxes
我在R中构建了一些箱形图并且有几个异常值.我知道设置异常值限制的默认条件是:
但是,我希望将异常值归类为超出边界的值:
可以在R中设置吗?
是的,我知道它已经存在,我也发现Hadley在谷歌团体的答案中说明了ggplot2箱形图还没有缺口.所以我的问题是双重的:这已经改变了(已经有一个本地的凹口实现),如果没有,那么可以做些什么.
我的意思是我不需要缺口光学元件,代表一些阴影区域的置信区间,它适合放置在盒子图上的另一层中,看起来也不错.
还添加了一个屏幕截图,因为我听说没有图形,图形问题永远不会完整

我想为数据框中的每个不相关列绘制一个单独的框图.我认为我boxplot.matrix从sfsmsic包中走上了正确的轨道,但它似乎也是如此boxplot(as.matrix(plotdata),就是在共享的箱形图中绘制所有内容,并在轴上使用共享比例.我想(比方说)5个单独的情节.
我可以手工做到这样:
par(mfrow=c(2,2))
boxplot(data$var1
boxplot(data$var2)
boxplot(data$var3)
boxplot(data$var4)
Run Code Online (Sandbox Code Playgroud)
但必须有一种方法来使用数据框列?
编辑:我使用迭代,看到我的答案.
我在这里 [在.txt文件中] 有一些数据,我读入数据帧df,
df <- read.table("data.txt", header=T,sep="\t")
Run Code Online (Sandbox Code Playgroud)
我使用以下代码删除列中的负值x(因为我只需要正值)df,
yp <- subset(df, x>0)
Run Code Online (Sandbox Code Playgroud)
现在我想在同一层中绘制多个箱形图.我首先融化数据框df,结果图包含几个异常值,如下所示.
# Melting data frame df
df_mlt <-melt(df, id=names(df)[1])
# plotting the boxplots
plt_wool <- ggplot(subset(df_mlt, value > 0), aes(x=ID1,y=value)) +
geom_boxplot(aes(color=factor(ID1))) +
scale_y_log10(breaks = trans_breaks("log10", function(x) 10^x), labels = trans_format("log10", math_format(10^.x))) +
theme_bw() +
theme(legend.text=element_text(size=14), legend.title=element_text(size=14))+
theme(axis.text=element_text(size=20)) +
theme(axis.title=element_text(size=20,face="bold")) +
labs(x = "x", y = "y",colour="legend" ) +
annotation_logticks(sides = "rl") +
theme(panel.grid.minor = element_blank()) +
guides(title.hjust=0.5) +
theme(plot.margin=unit(c(0,1,0,0),"mm"))
plt_wool …Run Code Online (Sandbox Code Playgroud) 如何调整我的Y轴以忽略异常值,就像在这篇文章中一样,但是在一个更具挑战性的情况下,我有4个箱图和"自由刻面"布局?
p < - ggplot(molten.DF,aes(x = class,y = SOC,fill = class))+ geom_boxplot()+ facet_grid(layer~.,scales ="free",space ="free")
正如您在我的图中所看到的,考虑Y轴范围内的异常值会使框更难以阅读.如果结果中仍然可以看到一些异常值,那就不重要了,但我想真正关注这些方块!

在过去,我已经能够使用ggplot2通过提供较低的晶须,较低的分位数,中位数,较高的分位数和较高的晶须以及x轴标签来创建箱图.例如:
DF <- data.frame(x=c("A","B"), min=c(1,2), low=c(2,3), mid=c(3,4), top=c(4,5), max=c(5,6))
ggplot(DF, aes(x=x, y=c(min,low,mid,top,max))) +
geom_boxplot()
Run Code Online (Sandbox Code Playgroud)
将为两组数据(A和B)制作一个箱线图.这不再适合我.我收到以下错误:
Error: Aesthetics must either be length one, or the same length as the dataProblems:x
Run Code Online (Sandbox Code Playgroud)
有没有人知道ggplot2中是否有某些变化?
我正在尝试用ggplot2中的水平箱图制作一个情节,你只能使用coord_flip().我也试图将箱形图垂直放置以将某些组合在一起.我已经知道这种方法建议使用faceting,但这与coord_flip()不兼容,正如我们在这里看到的:ggplot2:带有facet_grid和自由缩放的boxplot.所以我想知道是否可以使用空白级别来创建空格.这是我到目前为止所做的事情:
d <- diamonds
library("ggplot2")
levels(d$cut) <- list(A="Fair", B="Good", "-", C="Very Good", D="Ideal", E="Premium")
p = ggplot(d, aes(x=cut, y=depth))
p +
geom_boxplot(color="black", size=0.2) +
theme_bw() +
scale_x_discrete(breaks = c("A", "B", "-", "C", "D", "E"), drop=FALSE) +
coord_flip()
ph = 2.75
pw = 4
ggsave("plot.png", height=ph, width=pw)
Run Code Online (Sandbox Code Playgroud)
如您所见,如果我在其中创建一个带有" - "的空白级别并将其包含在scale_x_discrete()中,那么我会得到一个空白行.问题是我只能添加一个空格.有没有人对如何在这些水平箱形图之间添加空格有任何想法?
对于以下数据帧(df),
ColA ColA_weights ColB ColB_weights
0 0.038671 1073 1.859599 1
1 20.39974 57362 10.59599 1
2 10.29974 5857 2.859599 1
3 5.040000 1288 33.39599 1
4 1.040000 1064 7.859599 1
Run Code Online (Sandbox Code Playgroud)
我想绘制一个加权箱图,其中每个框的权重分别由ColA_weights和ColB_weights给出,我只是做
df.boxplot(fontsize=12,notch=0,whis=1.5,vert=1,widths=0.2)
Run Code Online (Sandbox Code Playgroud)
但是,似乎没有规定包括权重.有解决方案吗
谢谢!
我试图在今年发表在Nature上的一篇文章中对图2d-f进行类似的绘图.它基本上是一个半箱图,另一半有点.
任何人都可以给我一些提示吗?非常感谢你!
这些是我的数据和代码,它们生成带有内部点的完整框
require(magrittr)
require(tidyverse)
dat <- structure(list(p1 = c(0.0854261831077604, 0.408418657218253,
0.577793646477315, 0.578028229977424, 0.48933166218204, 0.53117814324334,
0.526653494462464, 0.00687616283435221, 0.444300425796509, 0.00287319455358522,
0.949821402532831, 0.96832469523368, 0.953281969982759, 0.360125244759434,
0.407921095422844, 0.885776732104954, 0.159882184516691, 0.911094990767761,
0.0444367172734037, 0.144888951725151, 0.508858686640707, 0.694913731085945,
0.117270366119258, 0.78227546070467, 0.980457304886186, 0.711464034564424,
0.753944466390685, 0.0474210438747038, 0.00344183466223558, 0.0290017465534545,
0.75092385236303, 0.868873921257987, 0.744396990487425, 0.0140007244233847,
0.0332266395043963, 0.482897084793009, 0.0535516646483004, 0.452926358923891,
0.0144057727301603, 0.171918034525543), p2 = c(0.101262675229211,
0.196913109208586, 0.37814311161382, 0.0677625689405156, 0.12517090579686,
0.409083554335168, 0.158886941347288, 0.847394861862651, 0.180560031076741,
0.967122694294885, 0.000901627067665116, 0.00039495110143705,
9.70707318411806e-05, 0.546200038486894, 0.435475454787648, 5.95555269800323e-06,
0.0178837768834925, 8.42690065415846e-06, 0.00777059697751842,
0.0020397073541544, 0.486699073016371, 0.283679673247571, 0.857183359146641,
0.200712003853458, 0.0164911141652784, …Run Code Online (Sandbox Code Playgroud)