标签: boxplot

使用ggplot2组合Boxplot和直方图

我试图结合直方图和箱图来可视化连续变量.这是我到目前为止的代码

require(ggplot2)
require(gridExtra)
p1 = qplot(x = 1, y = mpg, data = mtcars, xlab = "", geom = 'boxplot') + 
     coord_flip()
p2 = qplot(x = mpg, data = mtcars, geom = 'histogram')
grid.arrange(p2, p1, widths = c(1, 2))
Run Code Online (Sandbox Code Playgroud)

情节

除了x轴的对齐外,它看起来很好.谁能告诉我如何对齐它们?或者,如果某人有更好的方法来使用此图表ggplot2,那么也会受到赞赏.

r histogram ggplot2 boxplot

22
推荐指数
2
解决办法
9829
查看次数

如何绘制具有显着水平的箱线图?

前段时间我问了一个关于绘制boxplot Link1的问题.

我有3个不同的组(或标签)的一些数据请在这里下载.我可以使用以下R代码来获取boxplot

library(reshape2)
library(ggplot2)

morphData <- read.table(".\\TestData3.csv", sep=",", header=TRUE);
morphData.reshaped <- melt(morphData, id.var = "Label")

ggplot(data = morphData.reshaped, aes(x=variable, y=value)) + 
  + geom_boxplot(aes(fill=Label))
Run Code Online (Sandbox Code Playgroud)

在这里,我只是想知道如何将重要水平放在箱线图上方.为了使自己清楚,我在这里放了一张剪纸截图:

箱形图

r significance ggplot2 boxplot

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

如何在ggplot2 boxplot中为每个组添加一些观察并使用组均值?

我正在做一个基本的箱子图,其中y=agex=Patient groups

age <- ggplot(data, aes(factor(group2), age))  + ylim(15, 80) 
age + geom_boxplot(fill = "grey80", colour = "#3366FF")
Run Code Online (Sandbox Code Playgroud)

我希望你能用一些东西来帮助我:

1)是否可以在每个组框图上面包括每组的观察次数(但不是在我的组标签所在的X轴上),而不必在油漆中执行此操作:)?我尝试过使用:

age + annotate("text", x = "CON", y = 60, label = "25")
Run Code Online (Sandbox Code Playgroud)

CON第一组在哪里,就在y = 60这个组的箱线图上方.但是,该命令不起作用.我认为它有一些事情可以做,它x是一个连续的而不是一个分类的变量.

2)尽管有很多关于使用平均值而不是中位数的问题,我仍然没有找到适合我的代码?

3)在同样的问题上你有没有办法在箱线图中包含平均组数据?也许用

age + stat_summary(fun.y=mean, colour="red", geom="point")
Run Code Online (Sandbox Code Playgroud)

然而,它只包括一个平均所在的点.或者再次使用

age + annotate("text", x = "CON", y = 30, label = "30")
Run Code Online (Sandbox Code Playgroud)

哪一个CON是第一组,y = 30是〜组年龄均值.知道如何灵活和丰富的ggplot2语法,我希望有一种更优雅的方式来使用真实的统计输出而不是annotate.

任何建议/链接将不胜感激!

谢谢!!

r ggplot2 boxplot

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

seaborn boxplot的子图

我有这样的数据帧

import seaborn as sns
import pandas as pd
%pylab inline
df = pd.DataFrame({'a' :['one','one','two','two','one','two','one','one','one','two'], 'b': [1,2,1,2,1,2,1,2,1,1], 'c': [1,2,3,4,6,1,2,3,4,6]})
Run Code Online (Sandbox Code Playgroud)

单个箱图是可以的

sns.boxplot(  y="b", x= "a", data=df,  orient='v' )
Run Code Online (Sandbox Code Playgroud)

但我想为所有变量构建一个子图.我做

names = ['b', 'c']
plt.subplots(1,2)
sub = []
for name in names:

    ax = sns.boxplot(  y=name, x= "a", data=df,  orient='v' )
    sub.append(ax)
Run Code Online (Sandbox Code Playgroud)

我明白了

在此输入图像描述

怎么解决?thanx的帮助

loops boxplot python-3.x seaborn

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

连接意味着在带有线的箱线图上(ggplot2)

我有一个显示多个盒子的箱线图.我想连接每个盒子的平均值和一条线.箱形图默认不显示均值,而中间线仅表示中位数.我试过了

ggplot(data, aes(x=xData, y=yData, group=g)) 
    + geom_boxplot() 
    + stat_summary(fun.y=mean, geom="line")
Run Code Online (Sandbox Code Playgroud)

这不起作用.

有趣的是,干嘛

stat_summary(fun.y=mean, geom="point") 
Run Code Online (Sandbox Code Playgroud)

绘制每个框中的中间点.为什么"排队"不起作用?

这样的东西,但使用ggplot2,http://www.aliquote.org/articles/tech/RMB/c4_sols/plot45.png

r ggplot2 boxplot

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

如何使用ggplot2绘制小提琴图?

我可以ggplot2用来制作小提琴情节吗?也许使用一些变化geom_boxplot()

graphics r data-visualization ggplot2 boxplot

18
推荐指数
2
解决办法
7747
查看次数

用透明色ggplot2创建箱图

我创建了一个包含多个组的图形,并在一行线上绘制了一个geom_boxplot().但是,透明地对盒子进行着色以便可以看到线条会很不错.

这是一些示例数据:

x11()

name <- c("a", "a", "a", "a", "a", "a","a", "a", "a", "b", "b", "b","b", "b", "b","b", "b", "b")
class <- c("c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3","c1", "c1", "c1", "c2", "c2", "c2", "c3", "c3", "c3")
year <- c("2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008", "2010", "2009", "2008")
value <- c(100, 33, 80, 90, 80, 100, 100, 90, 80, 90, 80, 100, 100, 90, 80, 99, 80, 100)

df …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

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

如何使用R ggplot更改x轴刻度标签名称,顺序和箱图颜色?

我有一个包含csv文件的文件夹,每个文件有两列数据,例如:

0,red
15.657,red
0,red
0,red
4.429,red
687.172,green
136.758,green
15.189,red
0.152,red
23.539,red
0.348,red
0.17,blue
0.171,red
0,red
61.543,green
0.624,blue
0.259,red
338.714,green
787.223,green
1.511,red
0.422,red
9.08,orange
7.358,orange
25.848,orange
29.28,orange
Run Code Online (Sandbox Code Playgroud)

我使用以下R代码生成箱图:

files <- list.files(path="D:/Ubuntu/BoxPlots/test/", pattern=NULL, full.names=F, recursive=FALSE)
files.len<-length(files)
col_headings<-c("RPKM", "Lineage")

for (i in files){
  i2<-paste(i,"png", sep=".")
  boxplots<-read.csv(i, header=FALSE)
  names(boxplots)<-col_headings
  png(i2)
  bplot<-ggplot(boxplots, aes(Lineage, RPKM)) + geom_boxplot(aes(fill=factor(Lineage))) + geom_point(aes(colour=factor(Lineage)))
  print(bplot)
  graphics.off()
}
Run Code Online (Sandbox Code Playgroud)

现在我想改变箱线图的颜色以匹配相应的x轴颜色标签.我还想更改x轴标签的名称,以及它们的顺序.有没有办法使用ggplot或qplot来做到这一点?

r ggplot2 boxplot

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

调整seaborn.boxplot

我想比较一组得分(score)的分布,按一些类别(centrality)分组并用其他一些()着色model.我用seaborn试过以下内容:

plt.figure(figsize=(14,6))
seaborn.boxplot(x="centrality", y="score", hue="model", data=data, palette=seaborn.color_palette("husl", len(models) +1))
seaborn.despine(offset=10, trim=True)
plt.savefig("/home/i11/staudt/Eval/properties-replication-test.pdf", bbox_inches="tight")
Run Code Online (Sandbox Code Playgroud)

我对这个情节有一些问题:

  • 有大量的异常值,我不喜欢它们是如何绘制的.我可以删除它们吗?我可以改变外观以减少混乱吗?我可以给它们着色至少使它们的颜色与盒子颜色相匹配吗?
  • modeloriginal是特殊的,因为所有其他分布应该与分布进行比较original.这应该在视图中直观地反映出来.我可以制作original每组的第一个盒子吗?我可以以某种方式偏移或标记它吗?是否有可能在每个original分布的中位数和一组方框中绘制一条水平线?
  • 有些值score非常小,如何正确缩放y轴来显示它们?

在此输入图像描述

编辑:

这是一个带有对数刻度的y轴的示例 - 也不是理想的.为什么有些盒子似乎在低端切断?

在此输入图像描述

python plot matplotlib boxplot seaborn

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

在R中标记箱形图的异常值

我有代码创建一个boxplot,使用R中的ggplot,我想用年份和Battle标记我的异常值.

这是我创建箱图的代码

require(ggplot2)
ggplot(seabattle, aes(x=PortugesOutcome,y=RatioPort2Dutch ),xlim="OutCome", 
y="Ratio of Portuguese to Dutch/British ships") + 
geom_boxplot(outlier.size=2,outlier.colour="green") + 
stat_summary(fun.y="mean", geom = "point", shape=23, size =3, fill="pink") + 
ggtitle("Portugese Sea Battles")
Run Code Online (Sandbox Code Playgroud)

有人可以帮忙吗?我知道这是正确的,我只想标记异常值.

r ggplot2 boxplot direct-labels

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