标签: boxplot

忽略ggplot2 boxplot + faceting +"free"选项中的异常值

如何调整我的Y轴以忽略异常值,就像在这篇文章中一样,但是在一个更具挑战性的情况下,我有4个箱图和"自由刻面"布局?

p < - ggplot(molten.DF,aes(x = class,y = SOC,fill = class))+ geom_boxplot()+ facet_grid(layer~.,scales ="free",space ="free")

正如您在我的图中所看到的,考虑Y轴范围内的异常值会使框更难以阅读.如果结果中仍然可以看到一些异常值,那就不重要了,但我想真正关注这些方块!

具有自由尺度的boxplot,所有异常值都是(不幸)可见

r facet outliers ggplot2 boxplot

11
推荐指数
1
解决办法
3981
查看次数

带有预先计算值的geom_boxplot

在过去,我已经能够使用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中是否有某些变化?

r ggplot2 boxplot

11
推荐指数
1
解决办法
5644
查看次数

熊猫的加权boxplot

对于以下数据帧(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)

但是,似乎没有规定包括权重.有解决方案吗

谢谢!

python boxplot pandas

11
推荐指数
1
解决办法
1052
查看次数

如何绘制混合箱图:另一半有抖动点的半箱图?

我试图在今年发表在Nature上一篇文章中对图2d-f进行类似的绘图.它基本上是一个半箱图,另一半有点.

任何人都可以给我一些提示吗?非常感谢你!

DOI:10.1038/nature25479

这些是我的数据和代码,它们生成带有内部点的完整框

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)

plot r data-visualization ggplot2 boxplot

11
推荐指数
3
解决办法
1388
查看次数

具有matplotlib中可变长度数据的Boxplot

我已经在文本文件中收集了一些数据,并且想要创建一个箱线图.但是,该数据文件包含例如可变长度的行.

1.2,2.3,3.0,4.5
1.1,2.2,2.9

对于相等的长度我可以做
PW = numpy.loadtxt("./ learning.dat")
matplotlib.boxplot(PW.T);

如何处理变量长度数据线?

python matplotlib boxplot

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

改变厚度中线geom_boxplot()

我想对geom_boxplot()进行一些修改.因为我的盒形图是真的"小"有时候(见黄色和绿色分支在图形这里)我要更加突出位数.那么可以调整中线的厚度吗?

r ggplot2 boxplot

10
推荐指数
1
解决办法
6492
查看次数

使用ggplot2的表Boxplot

我正在尝试用我的数据绘制一个箱线图,在R中使用'ggplot',但我无法做到.谁能帮我吗?数据如下表所示:

Paratio  ShapeIdx  FracD   NNDis   Core
-3.00    1.22    0.14    2.71    7.49
-1.80    0.96    0.16    0.00    7.04
-3.00    1.10    0.13    2.71    6.85
-1.80    0.83    0.16    0.00    6.74
-0.18    0.41    0.27    0.00    6.24
-1.66    0.12    0.11    2.37    6.19
-1.07    0.06    0.14    0.00    6.11
-0.32    0.18    0.23    0.00    5.93
-1.16    0.32    0.15    0.00    5.59
-0.94    0.14    0.15    1.96    5.44
-1.13    0.31    0.16    0.00    5.42
-1.35    0.40    0.15    0.00    5.38
-0.53    0.25    0.20    2.08    5.32
-1.96    0.36    0.12    0.00    5.27
-1.09    0.07    0.13    0.00 …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

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

如何将自定义列顺序应用于pandas boxplot?

我可以在pandas DataFrame中获得一个工资列的boxplot ...

train.boxplot(column='Salary', by='Category', sym='')
Run Code Online (Sandbox Code Playgroud)

...但是我无法弄清楚如何定义"类别"列上使用的索引顺序 - 我想根据另一个标准提供我自己的自定义顺序:

category_order_by_mean_salary = train.groupby('Category')['Salary'].mean().order().keys()
Run Code Online (Sandbox Code Playgroud)

如何将自定义列顺序应用于boxplot列?(除了使用前缀强制排序的丑陋的kludging列名)

'Category'是一个带有27个不同值的字符串列:boxplot.所以它可以很容易地分解['Accounting & Finance Jobs','Admin Jobs',...,'Travel Jobs']

在检查时,限制在内部pd.Categorical.from_array(),它转换列对象而不允许排序:

我想我可以破解pandas boxplot()的自定义版本,或者进入对象的内部.并提交增强请求.

编辑:这个问题出现了大熊猫~0.13,并且可能已被最近的(0.19 +?)版本淘汰,根据@ Cireo的最新答案.

python boxplot pandas categorical-data

10
推荐指数
2
解决办法
7743
查看次数

熊猫时间序列箱图

如何为大熊猫时间序列创建一个箱形图,我每天都有一个盒子?

每小时数据的样本数据集,其中一个框应包含24个值:

import pandas as pd
n = 480
ts = pd.Series(randn(n),
               index=pd.date_range(start="2014-02-01",
                                   periods=n,
                                   freq="H"))
ts.plot()
Run Code Online (Sandbox Code Playgroud)

我知道我可以为当天制作一个额外的列,但我希望有适当的x轴标记和x限制功能(如in ts.plot()),因此能够使用日期时间索引会很棒.

没有为R/GGPLOT2类似的问题在这里,如果它有助于澄清我想要的东西.

python time-series boxplot pandas

10
推荐指数
2
解决办法
9698
查看次数

ValueError:num必须为1 <= num <= 2,而不是3

我有以下dataframe生成使用pivot_table:

在此输入图像描述

boxplot在多列中使用以下代码:

    fig = plt.figure()
for i in range(0,25):
    ax = plt.subplot(1,2,i+1)
    toPlot1.boxplot(column='Score',by=toPlot1.columns[i+1],ax=ax)
fig.suptitle('test title', fontsize=20)
plt.show()
Run Code Online (Sandbox Code Playgroud)

我期待如下输出:

在此输入图像描述

但是这段代码给了我以下错误:

---------------------------------------------------------------------------
ValueError                                Traceback (most recent call last)
<ipython-input-275-9c68ce91596f> in <module>()
      1 fig = plt.figure()
      2 for i in range(0,25):
----> 3     ax = plt.subplot(1,2,i+1)
      4     toPlot1.boxplot(column='Score',by=toPlot1.columns[i+1],ax=ax)
      5 fig.suptitle('test title', fontsize=20)

E:\Anaconda2\lib\site-packages\matplotlib\pyplot.pyc in subplot(*args, **kwargs)
   1020 
   1021     fig = gcf()
-> 1022     a = fig.add_subplot(*args, **kwargs)
   1023     bbox = a.bbox
   1024     byebye = []

E:\Anaconda2\lib\site-packages\matplotlib\figure.pyc in …
Run Code Online (Sandbox Code Playgroud)

python boxplot pandas

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