gpt4 book ai didi

python - Matplotlib 箱线图 : Showing Number of Occurrences of Integer Outliers

转载 作者:太空宇宙 更新时间:2023-11-04 02:45:01 31 4
gpt4 key购买 nike

我有如下图(使用 plt.boxplot()): Boxplot with Integer Outliers

现在,我想要绘制的是这些异常值出现的频率(最好在每个异常值的右上角)。

这在某种程度上是可以实现的吗?

最佳答案

ax.boxplot返回箱线图中所有元素的字典。您需要从该字典中获取的键是 'fliers'

boxdict['fliers'] 中,有用于绘制传单的 Line2D 实例。我们可以使用 .get_xdata().get_ydata() 获取它们的 xy 位置。

您可以使用 set 找到所有唯一的 y 位置,然后使用 .count() 找到在该位置绘制的传单数量。

那么这只是使用 matplotlib 的 ax.text 向绘图添加文本标签的情况。

考虑以下示例:

import matplotlib.pyplot as plt
import numpy as np

# Some fake data
data = np.zeros((10000, 2))
data[0:4, 0] = 1
data[4:6, 0] = 2
data[6:10, 0] = 3
data[0:9, 1] = 1
data[9:14, 1] = 2
data[14:20, 1] = 3

# create figure and axes
fig, ax = plt.subplots(1)

# plot boxplot, grab dict
boxdict = ax.boxplot(data)

# the fliers from the dictionary
fliers = boxdict['fliers']

# loop over boxes in x direction
for j in range(len(fliers)):

# the y and x positions of the fliers
yfliers = boxdict['fliers'][j].get_ydata()
xfliers = boxdict['fliers'][j].get_xdata()

# the unique locations of fliers in y
ufliers = set(yfliers)

# loop over unique fliers
for i, uf in enumerate(ufliers):

# print number of fliers
ax.text(xfliers[i] + 0.03, uf + 0.03, list(yfliers).count(uf))

plt.show()

enter image description here

关于python - Matplotlib 箱线图 : Showing Number of Occurrences of Integer Outliers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45354215/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com