小编Len*_*nna的帖子

如何在R中一起绘制两个直方图?

我使用的是R,我有两个数据框:胡萝卜和黄瓜.每个数据框都有一个数字列,列出了所有测量胡萝卜(总计:100k胡萝卜)和黄瓜(总计:50k黄瓜)的长度.

我希望在同一块情节上绘制两个直方图 - 胡萝卜长度和黄瓜长度.它们重叠,所以我想我也需要一些透明度.我还需要使用相对频率而不是绝对数字,因为每组中的实例数不同.

像这样的东西会很好,但我不明白如何从我的两个表创建它:

重叠密度

plot r histogram

211
推荐指数
8
解决办法
39万
查看次数

避免Python和默认启动arg行为

我正在使用实现__add__但不是子类的Python对象int.MyObj1 + MyObj2工作正常,但sum([MyObj1, MyObj2])导致了TypeError,因为sum()第一次尝试0 + MyObj.为了使用sum(),我的对象需要__radd__处理MyObj + 0 或者我需要提供一个空对象作为start参数.有问题的对象不是空的.

在有人要求之前,该对象不像列表或类似字符串,因此使用join()或itertools无济于事.

编辑以获取详细信息:模块具有SimpleLocation和CompoundLocation.我将把位置缩写为Loc.A SimpleLoc包含一个右开间隔,即[开始,结束].添加SimpleLoc产量a CompoundLoc,其中包含间隔列表,例如[[3, 6), [10, 13)].最终用途包括遍历联合,例如[3, 4, 5, 10, 11, 12],检查长度和检查成员资格.

数字可以相对较大(例如,小于2 ^ 32但通常为2 ^ 20).间隔可能不会非常长(100-2000,但可能更长).目前,仅存储端点.我现在暂时想到尝试子类化set,使得该位置被构造为set(xrange(start, end)).但是,添加集将使Python(和数学家)适合.

我看过的问题:

我正在考虑两种解决方案.一种是避免sum()和使用本评论中提供的循环.我不明白为什么sum()开始将iterable的第0项添加到0而不是添加第0和第1项(如链接注释中的循环); 我希望有一个神秘的整数优化原因.

我的另一个解决方案如下; 虽然我不喜欢硬编码的零检查,但这是我能够sum()工作的唯一方式.

# ... …
Run Code Online (Sandbox Code Playgroud)

python sum

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

使用unittest测试作业失败

我的一个属性是一个属性,其中setter调用验证函数,如果新值无效则引发异常:

pos.offset = 0
# @offset.setter calls validate(offset=0)
# PositionError: Offset may not be 0.
Run Code Online (Sandbox Code Playgroud)

我正在尝试添加测试以确保此操作失败.但是,我无法弄清楚如何让assertRaises与赋值一起工作.

assertRaises的正常语法需要一个方法,而不是一个属性/属性:

self.assertRaises(PositionError, pos.offset, 0)
# TypeError: 'int' object is not callable
Run Code Online (Sandbox Code Playgroud)

我尝试过的其他形式是无效的Python:

self.assertRaises(PositionError, pos.offset = 0)
# SyntaxError: Keyword can't be an expression
self.assertRaises(PositionError, lambda: pos.offset = 0)
# SyntaxError: lambda cannot contain assignment
Run Code Online (Sandbox Code Playgroud)

如何测试对属性的分配失败?

注意:Python 2.6,我知道unittest在2.7中有一些新功能

python unit-testing properties variable-assignment assertraises

12
推荐指数
2
解决办法
1895
查看次数