小编EA0*_*A00的帖子

R - 差分散点图

我想知道是否有办法在R中相互减去两个分箱散点图.我有两个具有相同轴的分布,并希望将一个叠加在另一个上面并减去它们,从而产生差异散点图.

这是我的两个情节:

在此输入图像描述在此输入图像描述

和我的剧情脚本:

library(hexbin)
library(RColorBrewer)

setwd("/Users/home/")
df <- read.table("data1.txt")
x <-df$c2
y <-df$c3

bin <-hexbin(x,y,xbins=2000)
my_colors=colorRampPalette(rev(brewer.pal(11,'Spectral')))
d <- plot(bin, main=""  , colramp=my_colors, legend=F)
Run Code Online (Sandbox Code Playgroud)

关于如何解决这个问题的任何建议都会非常有帮助.

编辑 找到另一种方法:

xbnds <- range(x1,x2)
ybnds <- range(y1,y2)
bin1 <- hexbin(x1,y1,xbins= 200, xbnds=xbnds,ybnds=ybnds)
bin2 <- hexbin(x2,y2,xbins= 200, xbnds=xbnds,ybnds=ybnds)
erodebin1 <- erode.hexbin(smooth.hexbin(bin1))
erodebin2 <- erode.hexbin(smooth.hexbin(bin2))
hdiffplot(erodebin1, erodebin2)
Run Code Online (Sandbox Code Playgroud)

plot r scatter

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

Pandas - 在 pd.merge 时为缺失值添加 NaN

我将目录中的所有文件连接在一起,但是有些文件具有不同数量的条目 - 当文件中没有该键的值时,如何放置 NaN?

例如:

文件1.cs

 NUM, NAME, ORG, DATA
 1,AAA,10,123.4
 1,AAB,20,176.5
 1,AAC,30,133.5
Run Code Online (Sandbox Code Playgroud)

文件 2. CS

 NUM, NAME, ORG, DATA
 1,AAA,10,111.4
 1,AAC,30,122.5
 2,BBA,12,156.7
Run Code Online (Sandbox Code Playgroud)

期望输出

 NUM, NAME, ORG, File1, File2 ....
 1, AAA, 10, 123.4, 111.4
 1, AAB, 20, 176.5, NaN
 1, AAC, 30, 133.5, 122.5
 2, BBA, 12, NaN,   156.7
 .....
Run Code Online (Sandbox Code Playgroud)

这是我尝试过的:

import pandas as pd
import glob

writer = pd.ExcelWriter('analysis.xlsx', engine='xlsxwriter')
data = []
df1 = pd.read_csv("file1.cs", sep = ',', header = 'infer')    

for infile in glob.glob("*.cs"):
    df = …
Run Code Online (Sandbox Code Playgroud)

python merge pandas

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

如何在两个图案之间打印线条?

我想将行之间@cluster t.# has ### elements(包括此行)之间的所有内容打印出来,并@cluster t.#+1 has ### elements(最好省略此行)从我的输入文件打印到相应编号的输出文件(clust(#).txt)中。到目前为止,该脚本创建了没有任何内容的适当编号的文件。

#!/usr/bin/perl 

use strict;
use warnings;

open(IN,$ARGV[0]);

our $num = 0;

while(my $line = <IN>) {
    if ($line =~ /^\@cluster t has (\d+) elements/) {
        my $clust = "full";
        open (OUT, ">clust$clust.txt");

    } elsif ($line =~ m/^\@cluster t.(\d+.*) has (\d+) elements/) {
        my $clust = $1;
        $num++;
        open (OUT, ">clust$clust.txt");
        print OUT, $_ if (/$line/ ... /$line/);
    }
}
Run Code Online (Sandbox Code Playgroud)

regex string perl

4
推荐指数
2
解决办法
3093
查看次数

熊猫,用字符串打印变量

我有一个看起来像这样的数据帧(新):

num  name1  name2
11    A      AB
14    Y      YX
25    L      LS
39    Z      ZT
....
Run Code Online (Sandbox Code Playgroud)

我只是想在print语句中提取num值,这样我的输出看起来像这样:

The value is 11
The value is 14
The value is 25
...
Run Code Online (Sandbox Code Playgroud)

我不确定这样做的正确格式是什么,因为下面的代码只是迭代"值是".

 for index, row in new.iterrows():
     print('The value is').format(new['num'])
Run Code Online (Sandbox Code Playgroud)

python printing pandas

4
推荐指数
2
解决办法
1622
查看次数

在Perl中,如何过滤目录中的所有日志文件,并提取有趣的行?

我正在尝试仅选择目录中的.log文件,然后在这些文件中搜索单词"unbound",并将整行打印到一个新的输出文件中,其名称与日志文件(number###.log)相同但带有.txt扩展名.这是我到目前为止:

#!/usr/bin/perl

  use strict;
  use warnings;

  my $path = $ARGV[0];
  my $outpath = $ARGV[1];
  my @files;
  my $files;

  opendir(DIR,$path) or die "$!";
  @files = grep { /\.log$/} readdir(DIR);


  my @out;
  my $out;
  opendir(OUT,$outpath) or die "$!";

  my $line;
  foreach $files (@files) {
  open (FILE, "$files");
  my @line = <FILE>;
  my $regex = Unbound;
  open (OUT, ">>$out");
  print grep {$line =~ /$regex/ } <>;
   } 
  close OUT;
  close FILE;

  closedir(DIR);
  closedir (OUT);
Run Code Online (Sandbox Code Playgroud)

我是初学者,我真的不知道如何使用获得的输出创建新的文本文件.

perl grep

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

Perl - 哈希的初始化

我不确定如何正确初始化我的哈希 - 我正在尝试为输入文件中的耦合行中的值创建键/值对.

例如,我的输入如下所示:

@cluster t.18
46421 ../../../output###.txt/
@cluster t.34
41554 ../../../output###.txt/
Run Code Online (Sandbox Code Playgroud)

我从第1行(@cluster行)中提取t数,并将其与第二行中的输出###.txt相匹配(以46421开头的行).但是,我似乎无法使用我编写的脚本将这些值放入哈希.

#!/usr/bin/perl
use warnings;
use strict;

my $key;
my $value;
my %hash;

my $filename = 'input.txt';
open my $fh, '<', $filename or die "Can't open $filename: $!";

while (my $line = <$fh>) {
        chomp $line;
        if ($line =~ m/^\@cluster/) {
            my @fields = split /(\d+)/, $line;
            my $key = $fields[1];          
        }
        elsif ($line =~ m/^(\d+)/) { 
            my @output = split /\//, $line;
            my $value = $output[5];       
}          
        $hash{$key} …
Run Code Online (Sandbox Code Playgroud)

arrays perl hash

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

初学者Python:将输出文件保存为argv输入文件名

我想保存生成的绘图,其名称与输入文件的名称相同.输入是通过命令行,所以我不确定如何做到这一点.

#!/usr/bin/python

import matplotlib
matplotlib.use('Agg')
import matplotlib.pyplot as plt
from numpy import arange,array,ones#,random,linalg
from pylab import plot,show
from scipy import stats
from sys import argv

a = argv[1]
b = argv[2]

list1 = open(a)
list2 = open(b)

xi = list1.read().splitlines()
filter(None,xi)

y = list2.read().splitlines()
filter(None,y)

xi = [float(xk) for xk in xi]
y = [float(yk) for yk in y]

slope, intercept, r_value, p_value, std_err = stats.linregress(xi,y)

print 'r value', r_value

line = slope*xi+intercept
plot(xi,line,'r-',xi,y,'o')
plt.savefig('a')
Run Code Online (Sandbox Code Playgroud)

我的输入是number001.txt,我希望输出为number001.png.

谢谢!!

python filenames argv

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

Awk - 在列之间添加特定数量的空格

我的输入文件包含空间均匀的列,如下所示:

X a b C D
Run Code Online (Sandbox Code Playgroud)

如何使用awk指定列之间的空格数,以便我得到这样的结果:

X     a b    C         D
Run Code Online (Sandbox Code Playgroud)

我知道如何使用awk计算列之间的空格,我只是不知道如何添加这些空格以获得我想要的布局.有什么建议?

awk

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

标签 统计

perl ×3

python ×3

pandas ×2

argv ×1

arrays ×1

awk ×1

filenames ×1

grep ×1

hash ×1

merge ×1

plot ×1

printing ×1

r ×1

regex ×1

scatter ×1

string ×1