我有一些成对测量的数据(例如 1C,1M,2C和2M),我分别绘制了这些数据(如C和M)。但是,我想在每对之间添加一条线(例如,从C列的点1到M'列'的点1的线)。
整个数据集的一小部分:
PairNumber Type M
1 M 0.117133
2 M 0.054298837
3 M 0.039734
4 M 0.069247069
5 M 0.043053957
1 C 0.051086898
2 C 0.075519
3 C 0.065834198
4 C 0.084632915
5 C 0.054254946
Run Code Online (Sandbox Code Playgroud)
我使用以下微小的R代码段生成了以下图片:
boxplot(test$M ~ test$Type)
stripchart(test$M ~ test$Type, vertical = TRUE, method="jitter", add = TRUE, col = 'blue')
Run Code Online (Sandbox Code Playgroud)
我想知道实现此目标需要什么命令或功能(下面仅给出了一些代码,给出了所需结果的粗略草图)。
另外,用ggplot进行此操作对我也很好,我可以使用以下替代ggplot代码来生成类似于上述第一个图的图:
ggplot(,aes(x=test$Type, y=test$M)) +
geom_boxplot(outlier.shape=NA) +
geom_jitter(position=position_jitter(width=.1, height=0))
Run Code Online (Sandbox Code Playgroud)
我一直在尝试geom_path,但是我没有找到实现我想要的正确语法。
我周末一直在尝试一些不同的java编译器,并决定今天早上坚持使用javac.然后我继续清理由我的测试引起的混乱,删除了每一个java的痕迹,并在autoremove和autoclean之后做了一个新的'apt-get install openjdk-6-jdk'.
然后遇到以下怪异:
tarskin@5-PARA-11-0120:~$ javac
The program 'javac' can be found in the following packages:
* openjdk-6-jdk
* ecj
* gcj-4.4-jdk
* gcj-4.6-jdk
* gcj-4.5-jdk
* openjdk-7-jdk
Try: sudo apt-get install <selected package>
Run Code Online (Sandbox Code Playgroud)
我已经安装了openjdk,但无论如何我试过它:
tarskin@5-PARA-11-0120:~$ sudo apt-get install openjdk-6-jdk
[sudo] password for tarskin:
Reading package lists... Done
Building dependency tree
Reading state information... Done
openjdk-6-jdk is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
tarskin@5-PARA-11-0120:~$
Run Code Online (Sandbox Code Playgroud)
我知道我必须做一些愚蠢的事情,但我不知道是什么,如果有人能指出正确的方向,那将非常感激......
干杯
编辑:找到关于我的java发行版的"新"实例的一些其他奇怪的方面,它似乎没有认识到例如应该来自正则表达式导入耸肩的 '模式'或'匹配器' .
首先,我将为这个问题的任意性道歉,但我正在重写我的一些脚本使用Numpy数组而不是嵌套的python列表(性能和内存),但我仍在努力完成他们的声明.
我试图使用numpy数组创建一个结构,我开始在数组中的1000(任意值)元素,其中每个元素应包含一个浮点数(如[x] [0])和一个包含坐标的嵌套数组(所以10.0000 x 2浮动PER顶级元素)(如[x] [1],嵌套数组中的每个元素都可以作为[x] [1] [y] [z]访问,其中y是嵌套数组中的元素,z指定哪个2坐标).以下问题嵌套结构化Numpy数组创建了一个相同的结构(作为我的问题和我想要的结构的参考).
原理图原始数据示例:
time 0
m/z 10 int 10
m/z 20 int 20
m/z 30 int 1000
...
time 1
<repeat>
Run Code Online (Sandbox Code Playgroud)
我已经读过我必须使用dtype部分来定义嵌套数组,但是我不太确定空数组的维度部分,有人能帮我一把吗?这是我到目前为止所提出的.
data=np.zeroes((1000,2 /* Now add nested array */), dtype=[('time', 'f'), [('m/z','f'), ('intensity','f')]])
PS:矩阵可能是更好的选择吗?
我有一个包含一些元素的结构,我在循环中释放了这个结构的内存,大致如下:
for (i = 0; i < teller; i++) {
free((glycan+i)->desc);
}
free(glycan)
Run Code Online (Sandbox Code Playgroud)
我假设指针仍然指向空的内存块,因此我想将它们设置为NULL,如下所示:
for (i = teller; i > 0; i--) {
(glycan+i)->desc = NULL;
}
glycan = NULL;
Run Code Online (Sandbox Code Playgroud)
然而Valgrind告诉我一些我不太懂的东西:
==11783== Invalid write of size 4
==11783== at 0x8048F49: main (spectral_matcher.c:122)
==11783== Address 0x431c070 is 72 bytes inside a block of size 28,000 free'd
==11783== at 0x4027C02: free (vg_replace_malloc.c:366)
==11783== by 0x8048F2C: main (spectral_matcher.c:121)
Run Code Online (Sandbox Code Playgroud)
任何人都可以向我解释为什么会发生这种警告/错误以及我应该采取哪些不同的方法来解决它?
编辑:我知道我在释放后将指针设置为NULL,释放只将内存标记为空闲,因此指针仍然完整(如果我没有记错),我随后希望将其设置为NULL.
for x in y:迭代列表的python语法必须以某种方式记住指针当前在哪个元素?我将如何获取该值,因为我试图在不诉诸的情况下解决这个问题 for index, x in enumerate(y):
我想要这样做的技术原因是我假设enumerate()成本性能虽然以某种方式访问已存在的"指针"不会.我从答案中看到,但是这个指针非常私密且无法访问.
我想要这样做的功能原因是,如果当前元素浮点值远离"期望的"浮点范围,则能够跳过例如100个元素.
- 答案 -
解决方法如下(纯示意图):
# foo is assumed to be ordered in this example
foo = [1,2,3,4,5,6....,99,100]
low = 60
high = 70
z = iter(foo)
for x in z:
if x < low-10
next(islice(z,10,10),None)
if x > high
break
Run Code Online (Sandbox Code Playgroud) 我有4个变量(包含0.0到1.0的相对值),我想检查这些变量中至少有2个高于0.01,其中1个必须高于0.05.我写了以下块:
if rel1 > 0.05:
if rel2 > 0.01 or rel3 > 0.01 or rel4 > 0.01:
print "Yay" # Filler line
elif rel2 > 0.05:
if rel1 > 0.01 or rel3 > 0.01 or rel4 > 0.01:
print "Yay" # Filler line
elif rel3 > 0.05:
if rel1 > 0.01 or rel2 > 0.01 or rel4 > 0.01:
print "Yay" # Filler line
elif rel4 > 0.05:
if rel1 > 0.01 or rel2 > 0.01 or rel3 > 0.01: …Run Code Online (Sandbox Code Playgroud)