- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在使用 seaborn 包制作时间序列箱线图,但我无法在异常值上贴标签。
我的数据是一个 3 列的数据框:[Month , Id , Value]
我们可以这样伪造:
### Sample Data ###
Month = numpy.repeat(numpy.arange(1,11),10)
Id = numpy.arange(1,101)
Value = numpy.random.randn(100)
### As a pandas DataFrame ###
Ts = pandas.DataFrame({'Value' : Value,'Month':Month, 'Id': Id})
### Time series boxplot ###
ax = seaborn.boxplot(x="Month",y="Value",data=Ts)
我每个月都有一个箱线图,我正在尝试放置
Id
作为图中三个异常值的标签:
最佳答案
首先需要检测哪个Id
在您的数据框中是异常值,您可以使用:
outliers_df = pd.DataFrame(columns = ['Value', 'Month', 'Id'])
for month in Ts['Month'].unique():
outliers = [y for stat in boxplot_stats(Ts[Ts['Month'] == month]['Value']) for y in stat['fliers']]
if outliers != []:
for outlier in outliers:
outliers_df = outliers_df.append(Ts[(Ts['Month'] == month) & (Ts['Value'] == outlier)])
它创建了一个类似于原始数据框的数据框,仅包含异常值。
Id
在你的情节上:
for row in outliers_df.iterrows():
ax.annotate(row[1]['Id'], xy=(row[1]['Month'] - 1, row[1]['Value']), xytext=(2,2), textcoords='offset points', fontsize=14)
完整代码:
import numpy as np
import pandas as pd
import seaborn as sns
import matplotlib.pyplot as plt
from matplotlib.cbook import boxplot_stats
sns.set_style('darkgrid')
Month = np.repeat(np.arange(1,11),10)
Id = np.arange(1,101)
Value = np.random.randn(100)
Ts = pd.DataFrame({'Value' : Value,'Month':Month, 'Id': Id})
fig, ax = plt.subplots()
sns.boxplot(ax=ax, x="Month",y="Value",data=Ts)
outliers_df = pd.DataFrame(columns = ['Value', 'Month', 'Id'])
for month in Ts['Month'].unique():
outliers = [y for stat in boxplot_stats(Ts[Ts['Month'] == month]['Value']) for y in stat['fliers']]
if outliers != []:
for outlier in outliers:
outliers_df = outliers_df.append(Ts[(Ts['Month'] == month) & (Ts['Value'] == outlier)])
for row in outliers_df.iterrows():
ax.annotate(row[1]['Id'], xy=(row[1]['Month'] - 1, row[1]['Value']), xytext=(2,2), textcoords='offset points', fontsize=14)
plt.show()
输出:
关于python - 箱线图 : Outliers Labels Python,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40470175/
我正在处理出院数据。具有相同 Patient_ID 的所有住院(病例)都应该属于同一个人。但是我发现有不同年龄和性别的 Pat_ID。 假设我有一个这样的数据集: Case_ID <- 1:8 Pat
我想比较(排序)增长率和不利的高增长率以及非常低的起始值。 例子: 1.开始:1.000.000结束:1.100.000增长:+10% >开始:100.000结束:120.000增长:+20% 3。开
我正在使用 seaborn 包制作时间序列箱线图,但我无法在异常值上贴标签。 我的数据是一个 3 列的数据框:[Month , Id , Value]我们可以这样伪造: ### Sample Data
我有一些关于 boxplots 的问题在 matplotlib 中: 问题 A。我在下面用 Q1、Q2 和 Q3 突出显示的标记代表什么?我相信 Q1 是最大值,Q3 是异常值,但什么是 Q2?
这个问题已经有答案了: Why does the division get rounded to an integer? [duplicate] (13 个回答) 已关闭 7 年前。 我正在完成thi
这两天在完善自己系统的过程中要实现一个查找异常的功能,于是在朋友的指点下学习并实现了异常点查找的一个基本算法“局部异常因子算法-Local Outlier Factor(LOF)算法”。 首先,找
有没有办法让geom_boxplot线、须线和离群点继承相同的 alpha分配给箱线图 fill在下面的情节? library(ggplot2) ggplot(iris, aes(x = Specie
我想将箱线图中的异常点设置为半透明 在 here!他们使用了“抖动”(类似的想法,不同的方法) 我的代码 ggplot() + geom_boxplot(aes(x = Sistema, y=valu
我将 JFreeChart 与 Java 结合使用,以使用箱线图评估实验结果。我想更改异常值和 farout 条目的颜色和形状。 这就是当我使用普通的 BoxAndWhiskerRenderer 时我
根据scikit-learn SGDClassifier documentation ,修改后的 Huber 损失函数可用于对异常值提供更高的容忍度。 看看 plot虽然是成本函数的一部分,但 Mod
我有如下图(使用 plt.boxplot()): 现在,我想要绘制的是这些异常值出现的频率(最好在每个异常值的右上角)。 这在某种程度上是可以实现的吗? 最佳答案 ax.boxplot返回箱线图中所有
[2, 4, 0, 100, 4, 11, 2602, 36]应返回:11(唯一的奇数)[160, 3, 1719, 19, 11, 13, -21]应返回:160(唯一的偶数) 以上是 Javasc
我想要一个如下所示的箱线图。但我想提供(1) 95% 置信区间和(2)没有异常值,而不是默认值。 95% 置信区间可能意味着 (i) 扩展方框并移除 mustache ,或 (ii) 仅具有均值和 m
我正在尝试删除 1% 的数据,因为我们认为这些异常值会严重扭曲数据。我试过使用 SELECT TOP 99 PERC,但 Amazon Redshift 不支持 TOP 的百分比。 我试过类似的东西:
我目前正在写我的硕士论文。我用自定义编码的 Python 处理了所有数据,我显示数据的主要方法之一是 matplotlib 中的箱线图。我一直在查看文档,但我看不到任何关于它如何对异常值(或“传单”)
对于 MATLAB 中的箱线图,我想问一下是否可以使用特定的百分位数作为上须线。我想使用第 95 个百分位作为上部晶须,第 5 个百分位作为下部晶须。 MATLAB 的默认行为是使晶须长度 = 1.5
我是一名优秀的程序员,十分优秀!