标签: boxplot

Matplotlib 箱线图视觉样式:`whiskerprops` 不起作用

在 matplotlib 的文档中boxplot我们可以读到:

Whiskerprops : dict 或 None (默认)如果提供,将设置胡须的绘图样式

好的,所以我通过了一个指令来在胡须上设置一些视觉样式:

whiskerprops = {'ls': 'solid', 'lw': 0.5, 'color': '#777777'}
boxplot(..., whiskerprops = whiskerprops)
Run Code Online (Sandbox Code Playgroud)

除了 之外,这些设置没有任何影响color

在其他 prop 上也可以观察到相同的行为:cappropsmedianpropsboxprops等。

后来我找到了原因,我会在答案中发布。我这样做只是因为其他人可能面临同样的问题,并且文档和教程没有回答这个问题。

python matplotlib boxplot

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

使用seaborn从列表列中分组箱线图

我在 python panda DataFrame 中有以下数据。我想要类似于https://stanford.edu/~mwaskom/software/seaborn/examples/grouped_boxplot.html中的分组箱线图

对于每个 id,我希望并排绘制两个箱形图。我该如何实现这一目标。我尝试用 seaborn 包绘制它,但没有成功。

id               predicted                              real
1            [10, 10, 10]                      [16, 18, 20]   
2            [12, 12, 15]              [15, 17, 19, 21, 23]
3           [20, 5, 4, 4]                          [29, 32]
4    [25, 25, 25, 24, 21]  [21, 24, 25, 26, 28, 29, 30, 33]
5        [20, 20, 20, 21]  [21, 22, 24, 26, 28, 30, 31, 32]
6           [8, 3, 3, 14]                          [25, 27]
7  [1, 4, 4, 4, 5, 6, 10]                      [69, 71, …
Run Code Online (Sandbox Code Playgroud)

python boxplot pandas seaborn

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

ggplot geom_jitter 落后于(多个)geom_boxplot

我使用以下代码:

data(mtcars)
ggplot(mtcars, aes(x=factor(cyl), y=mpg)) +
  geom_jitter(aes(colour=factor(gear)), width = 0.1) +
  geom_boxplot(aes(fill=factor(gear)), alpha=0.6)
Run Code Online (Sandbox Code Playgroud)

结果如下: 在此输入图像描述

但我想要来自 geom_jitter 的彩色点直接位于相应的(!)箱线图后面。有办法做到吗?

r ggplot2 boxplot jitter

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

如何在 matplotlib 中通过彩虹设置箱线图颜色

我想创建数据箱线图进行比较,我的图看起来像

我的

我怎样才能添加颜色

彩虹

plot colors matplotlib boxplot

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

不同 DataFrame 并排的 Pandas 箱线图

尽管网上有关于并排绘制箱线图的很好的例子。通过我的数据在两个不同的 pandas DataFrame 中设置的方式,并且已经有了总和子图,我无法管理使我的箱线图彼此相邻而不是重叠。

我的代码如下:

import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
mpl.use('agg')

fig, axarr = plt.subplots(3,sharex=True,sharey=True,figsize=(9,6))
month = ['jan','feb','mar','apr','may','jun','jul','aug','sep','oct','nov','dec']
percentiles = [90,95,98]
nr = 0
for p in percentiles:  
    future_data = pd.DataFrame(np.random.randint(0,30,size=(30,12)),columns = month)
    present_data = pd.DataFrame(np.random.randint(0,30,size=(30,12)),columns = month)

    Future = future_data.as_matrix()
    Present = present_data.as_matrix()      

    pp = axarr[nr].boxplot(Present,patch_artist=True, showfliers=False)   
    fp = axarr[nr].boxplot(Future, patch_artist=True, showfliers=False)

    nr += 1           
Run Code Online (Sandbox Code Playgroud)

结果如下所示: 重叠箱线图

您能帮我看看如何确保这些盒子彼此相邻,以便我可以比较它们而不会受到重叠的困扰吗?

谢谢你!

编辑:我稍微减少了代码,这样它就可以像这样运行。

matplotlib overlap boxplot pandas

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

按分类变量分组的箱线图

将熊猫用于大型数据集,我已经将其缩减为我需要的信息。基本上,我想根据帖子中使用的主题标签数量(范围从 1- 6,我将其视为分类变量)。这导致在同一帧中总共有 2*6=12 个箱线图,以便于比较。

我做了一些研究,我知道 df.boxplot(by='x'),但这并没有考虑比较两个国家的额外水平。

数据集包含标签数量(int)、国家(字符串)、朋友数量(int)的列。

值得一提的是,我对 Python 绘图还很陌生,包括轴和子图等内容,因此如果可能,请在您的答案中包含一些额外信息。

编辑:数据集的小样本

       #followers  #friends  #mentions  #hashtags  country  lang_user place  
450            53        71          1          0       ja         es   NaN  
489            54        34          1          1       ja         es   NaN  
867          1569      1999          0          0       en         es   NaN  
1021          224       242          0          3       ja         ja   NaN  
1022          377       506          1          5       ja         ja   NaN  
1023          315       305          0          2       ja         ja   NaN
Run Code Online (Sandbox Code Playgroud)

python boxplot pandas pandas-groupby

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

数据集每个变量的seaborn.boxplot

我正在使用威斯康星数据集。要显示箱线图,其中 Y 轴是数据帧的变量(例如:radius_mean),X 轴是诊断,我执行以下操作:

sns.boxplot(x='label', y='radius', data=dsWisconsin)
Run Code Online (Sandbox Code Playgroud)

(dsWisconsin 是从 .csv 加载 pandas 的数据框)

我的问题是,如何显示每个变量的所有箱线图(在网格中),而不是为每个变量执行前面的代码?

例如,类似这样的内容,但带有威斯康星州每个变量的箱线图:

多重直方图

sns.boxplot(x='label', y='radius', data=dsWisconsin)
Run Code Online (Sandbox Code Playgroud)

python boxplot seaborn

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

Seaborn boxplot 水平线注释

我想在一些图中添加一条水平线,即“目标”线:带状图、箱线图和小提琴图,以显示理想值数据(或理想情况下的范围)。

这个 R 示例(在箱线图中添加多条水平线) - 第一张图像 - 基本上就是它(尽管我会做一些格式化以使其易于展示)。

Python中的R abline() 等价物对我没有帮助(或者我还没有弄清楚如何),因为我正在使用分类数据,所以我只想基本上定义(例如)y=3并绘制它。我的代码(如下)工作正常,我只是不知道如何添加一行。

fig, ax = plt.subplots(nrows=4,figsize=(20,20))

sns.violinplot(x="Wafer", y="Means", hue='Feature', 
           data=Means[Means.Target == 1], ax=ax[0])
sns.violinplot(x="Wafer", y="Means", hue='Feature', 
           data=Means[Means.Target == 3], ax=ax[1])
sns.boxplot(x="Feature", y="Means", 
        data=Means, linewidth=0.8, ax=ax[2])
sns.stripplot(x="Feature", y="Means", hue='Wafer',
          data=Means, palette="plasma", jitter=0.1, size=5.5, ax=ax[3])
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助。

python boxplot pandas seaborn

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

在Python中删除Boxplot中的标签

我无法删除下面所示的每个箱线图下的标签“年龄”。它是自动生成的,无法摆脱它。这是我的代码和输出:

dataset.boxplot(column=['Age'], by=None, ax=None, fontsize=None, rot=0, 
grid=True, figsize=None, layout=None, return_type=None)
plt.suptitle('Attrition by Age')
plt.xlabel('test')
plt.title('test6')
plt.subplot(121)
plt.xlabel('test2')
plt.title('test3')
plt.ylabel('test5')
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

python boxplot

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

有没有办法在ggplot2中手动设置水平箱线图的高度?(垂直闪避)

我正在尝试制作一个图形,该图形的底部有密度图,密度图上方有相应的箱线图。我的密度图和箱线图由分类变量填充/着色。我想不出一种方法让箱线图高于密度图并且也被躲避。这是我到目前为止能够得到的:

d <- mtcars
d$cyl <- as.factor(d$cyl)

fig <- ggplot(data = d) + 
  geom_density(aes(x = mpg, fill = cyl),
               position = "dodge", 
               na.rm = TRUE) +
  geom_boxplot(aes(x = mpg, color = cyl), 
               position = ggstance::position_dodgev(height = 1),
               width = .05, show.legend = FALSE,
               na.rm = TRUE) + 
  facet_grid(~am, scales = "free_x") + 
  scale_fill_brewer(palette = "Set2") + 
  scale_color_brewer(palette = "Set2") +
  theme_minimal() + 
  guides(color = FALSE, fill = FALSE) 
fig
Run Code Online (Sandbox Code Playgroud)

测试图

但是,正如您所看到的,这不会将箱线图均匀地移动到密度图上方。我也用过

geom_boxplot(aes(x = mpg, color = cyl), 
            position = position_nudge(x = …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot density-plot

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