标签: boxplot

如何使用 .boxplot 函数修复 matplotlib 中 pyplot 中的“X 必须具有 2 个或更少维度”错误?

我想使用 python 中 matplotlib 中的 pyplot 创建一个带有 2 个箱线图的图形。

我正在使用鸢尾花数据集,该数据集提供了三种类型 150 朵花的花瓣长度:Setosa、Versicolor、Virginica。我想为 Setosa 的花瓣长度创建一个箱线图,为 Versicolor 的花瓣长度创建一个箱线图,所有这些都在同一个图上。

我的代码基于本教程:https://matplotlib.org/gallery/pyplots/boxplot_demo_pyplot.html#sphx-glr-gallery-pyplots-boxplot-demo-pyplot-py

import numpy as np
import pandas as pd
from sklearn.datasets import load_iris
from matplotlib import pyplot as plt

# From the iris dataset I create a dataframe which contains only the features 
# of the flowers (sepal length, sepal width, petal length, petal width and the 
# flower type. 

data = load_iris()
X= data["data"]
y = data ["target"]
iris=pd.DataFrame(X)
iris["target"]=y
iris.columns=data['feature_names']+["target"]
iris["target"]=iris["target"].apply(lambda …
Run Code Online (Sandbox Code Playgroud)

python matplotlib boxplot

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

具有不同 Y 尺度的多个变量的箱线图

我有 4 个变量(A、B、C、D),在 3 个位置上具有相似的模式。我想绘制一个箱线图(变量作为 Y 轴上的点,位置作为 X)。但变量具有不同数量级的值。有没有办法缩放 Y 轴并将所有变量绘制在箱线图上?可能是颜色不同吧。

Location = c("Washington","Washington","Washington","Washington","Washington","Washington", "Maine","Maine","Maine","Maine","Maine", "Florida","Florida","Florida","Florida","Florida","Florida")
A = c(0.000693156,  0.000677354,    0.000727863,    0.000650822,    0.000908343,    0.001126689,    0.001316292,    0.000975274,    0.00109082, 0.001057585,    0.000927826,    0.000552769,    0.000532546,    0.000559781,    0.000771569,    0.000563436,    0.000551136)
B = c(0.001915388,  0.001936627,    0.001476521,    0.001573681,    0.002584282,    0.00738909, 0.008089839,    0.006616564,    0.00495211, 0.004515925,    0.003791596,    0.000653847,    0.000350701,    0.000559781,    0.001920087,    0.000738206,    0.001077627)
C = c(0.000138966,  0.000104745,    0.000145573,    0.000103305,    5.08255E-05,    0.000361988,    0.000264876,    0.000454172,    0.000277471,    0.000117919,    8.9214E-05, 0.000173727,    0.000108241,    8.54628E-05,    2.35593E-05,    3.1302E-05, 1.12019E-05)
D = c(0.000108829,  0.000135005,    0.000120617,    9.29746E-05,    0.000105561,    9.27596E-05, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

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

为多个seaborn图创建单个图例

我正在使用“iris.csv”数据制作箱线图。我试图通过测量(即花瓣长度、花瓣宽度、萼片长度、萼片宽度)将数据分解为多个数据框,然后在 forloop 上绘制箱线图,从而添加子图。

最后,我想立即为所有箱线图添加一个通用图例。但是,我做不到。我已经使用几个 stackoverflow 问题尝试了几个教程和方法,但我无法修复它。

这是我的代码:

import seaborn as sns 
from matplotlib import pyplot

iris_data = "iris.csv"
names = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width', 'class']
dataset = read_csv(iris_data, names=names)


# Reindex the dataset by species so it can be pivoted for each species 
reindexed_dataset = dataset.set_index(dataset.groupby('class').cumcount())
cols_to_pivot = ['sepal-length', 'sepal-width', 'petal-length', 'petal-width']

# empty dataframe 
reshaped_dataset = pd.DataFrame()
for var_name in cols_to_pivot:
    pivoted_dataset = reindexed_dataset.pivot(columns='class', values=var_name).rename_axis(None,axis=1)
    pivoted_dataset['measurement'] = var_name
    reshaped_dataset = reshaped_dataset.append(pivoted_dataset, ignore_index=True)


## Now, lets spit the dataframe into …
Run Code Online (Sandbox Code Playgroud)

python matplotlib boxplot pandas seaborn

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

设置自定义中线颜色并将刻度标签颜色设置为箱线图面颜色

我正在使用这个漂亮的箱线图,来自 @Parfait 的回答

  1. 我遇到了越界错误,j不得不使用range(i*5,i*5+5). 为什么?
  2. 我想将中位数设置为特定颜色,比方说redmedianprops=dict(color="red")行不通的。怎么做?
  3. 如何将 y 轴刻度标签设置为与框相同的颜色?

免责声明:我不知道我在做什么。

这是使用随机数据的代码:

# import the required library 
import numpy as np 
import pandas as pd 
import matplotlib.pyplot as plt
import seaborn as sns

import string 
import matplotlib.colors as mc
import colorsys

# data
df = pd.DataFrame(np.random.normal(np.random.randint(5,15),np.random.randint(1,5),size=(100, 16)), columns=list(string.ascii_uppercase)[:16])

# Boxplot
fig, ax = plt.subplots(figsize=(9, 10))
medianprops=dict(color="red")
ax = sns.boxplot(data=df, orient="h", showfliers=False, palette = "husl")
ax = sns.stripplot(data=df, orient="h", jitter=True, size=7, …
Run Code Online (Sandbox Code Playgroud)

python boxplot seaborn

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

ggplot2 - 使用 geom_boxplot 生成带有自定义胡须的水平箱线图时出错

出于教育目的,我尝试使用 ggplot2 生成与点图结合的水平箱线图。但是,我想生成一个在 2.5% 和 97.5% 百分位数处带有须线的自定义箱线图,而不是geom_boxplot. 因此,我决定使用以下代码:

y <- rnorm(100)
df = data.frame(y)
df_boxplot <- data.frame(
  x_coord = 0.5,
  y0 = quantile(y, 0.025),
  y25 = quantile(y, 0.25),
  y50 = median(y),
  y75 = quantile(y, 0.75),
  y100 = quantile(y, 0.975)
)
# Vertical orientation with custom whiskers works
ggplot() +
  geom_boxplot(data = df_boxplot,
    aes(x = x_coord, ymin = y0, lower = y25, middle = y50, upper = y75, ymax = y100),
    stat = "identity"
  ) +
  geom_jitter(data = df, …
Run Code Online (Sandbox Code Playgroud)

r ggplot2 boxplot

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

在 ggplot2 中的箱线图组之间添加空间

我有一个数据集,我用它制作了一个箱线图。但我想在两组数据之间添加一些空间。

这是我的数据:

structure(list(variable = structure(c(1L, 1L, 1L, 1L, 1L, 1L, 
1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 1L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 
2L, 2L, 2L, 2L, 2L, 2L, 2L, 2L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 3L, 
3L, 3L, 3L, 3L, 3L, 3L, 3L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 4L, 
4L, 4L, 4L, 4L, 4L, 4L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 5L, 
5L, 5L, 5L, 5L, 5L, 6L, …
Run Code Online (Sandbox Code Playgroud)

r spacing ggplot2 boxplot

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

ggplot2:如何从数据框创建一个简单的boxplot?

我一直在努力做这个盒子图一整天.我很快就放弃了.请帮忙.我只想为我的3组A,B和C提供一个简单的箱线图.这是我简化的数据:

> mydata 
   A01 A02 A03 B01 B02 B03 C01 C02 C03
id0001    1    2    3    6    7    8    11    12    13
Run Code Online (Sandbox Code Playgroud)

A01,A02和A03应该弥补的置信区间为A,等等.我怎么能有3组在x轴一个非常简单的箱线图?虽然盒子将是巨大的,我会很感激,如果有人可以帮助我让我的情节相似,这一个.最后,我想打一个包含多个ID的图形,所以它看起来像这一个,但误差棒像第一个.

如果有人可以帮助我或给我如何进行的提示,我会非常感激!

谢谢.

r ggplot2 boxplot

0
推荐指数
1
解决办法
5286
查看次数

使用R中的基本图形绘制系列箱形图

我想在单个图中绘制R中的多个箱图,并将它们成对分组.我是R的初学者,虽然有几个主题处理相同的主题(R中的多个箱图),但我找不到一个全面的方法来解决这个问题.我想尽可能使用基本图形.

我有10组值,所有这些值都包含30个值(可以是任何正值).在这10个集合中,5个是类型1,另外5个是类型2.我的目标是有10个箱图(每组值一个)并将每组类型1与一组类型2组合在一个图形中.最后,我希望有5个数据集,每个数据包含两个箱图.我还希望每个簇(A,B,C,D,E)有1个x标签,并且类型1的数据为红色,类型2的数据为绿色.

到目前为止我的代码是:

A1data <- read.table("A1data.csv",header=TRUE,sep=";")
B1data <- read.table("B1data.csv",header=TRUE,sep=";")
C1data <- read.table("C1data.csv",header=TRUE,sep=";") 
D1data <- read.table("D1data.csv",header=TRUE,sep=";")
E1data <- read.table("E1data.csv",header=TRUE,sep=";")
A2data <- read.table("A2data.csv",header=TRUE,sep=";")
B2data <- read.table("B2data.csv",header=TRUE,sep=";")
C2data <- read.table("C2data.csv",header=TRUE,sep=";")
D2data <- read.table("D2data.csv",header=TRUE,sep=";")
E2data <- read.table("E2data.csv",header=TRUE,sep=";")

A1 <- 100*(A1data$x-A1data$y)/A1data$x
B1 <- 100*(B1data$x-B1data$y)/B1data$x
C1 <- 100*(C1data$x-C1data$y)/C1data$x
D1 <- 100*(D1data$x-D1data$y)/D1data$x
E1 <- 100*(E1data$x-E1data$y)/E1data$x
A2 <- 100*(A2data$x-A2data$y)/A1data$x
B2 <- 100*(B2data$x-B2data$y)/B1data$x
C2 <- 100*(C2data$x-C2data$y)/C1data$x
D2 <- 100*(D2data$x-D2data$y)/D1data$x
E2 <- 100*(E2data$x-E2data$y)/E1data$x

A <- cbind(A1,A2)
B <- cbind(B1,B2)
C <- cbind(C1,C2)
D <- …
Run Code Online (Sandbox Code Playgroud)

label r boxplot

0
推荐指数
1
解决办法
4028
查看次数

如何使用python ggplot包制作箱图

我正在尝试并且非常喜欢ggplot的python端口(http://ggplot.yhathq.com/)

我想制作一些数据箱图,但无法弄清楚如何做,希望有人可以提供帮助.

这是示例代码:

#Create pandas dataframe with random number data and labels 'A', 'B'
data = pd.DataFrame(np.random.randn(1,40)).transpose()
labels = np.repeat(['A','B'],20)
data['labels']=labels
data.columns = ['vals','labels']
Run Code Online (Sandbox Code Playgroud)

产量

   vals          labels
0 -0.685582      A
1 -0.332966      A
2  0.766283      A
3  1.751677      A
4  1.613434      A
Run Code Online (Sandbox Code Playgroud)

现在我试试

ggplot(data,aes(x='labels',y='vals')) + geom_boxplot()
Run Code Online (Sandbox Code Playgroud)

我得到了错误

<repr(<ggplot.ggplot.ggplot at 0x7f204dbb4810>) failed: TypeError: cannot perform reduce with flexible type>
Run Code Online (Sandbox Code Playgroud)

经过一些搜索,我认为问题是标签是字符串值的分类数据,但我不知道如何让ggplot在x轴上识别它

python ggplot2 boxplot pandas

0
推荐指数
1
解决办法
4035
查看次数

Highcharts Boxplots如何获得五点总结?

我想使用HighCharts创建箱图.正如我在文档中看到的,我需要为Highcharts提供所需的五点汇总,即min,max,q1,q3,用于创建boxplot的中值.

给定一个由数字组成的任意长度数组,如何有效地计算这五个数字?JS中有快速的方法吗?

javascript boxplot highcharts

0
推荐指数
1
解决办法
1446
查看次数

标签 统计

boxplot ×10

ggplot2 ×5

r ×5

python ×4

matplotlib ×2

pandas ×2

seaborn ×2

highcharts ×1

javascript ×1

label ×1

spacing ×1