我想知道是否有办法在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) 我将目录中的所有文件连接在一起,但是有些文件具有不同数量的条目 - 当文件中没有该键的值时,如何放置 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) 我想将行之间@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) 我有一个看起来像这样的数据帧(新):
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) 我正在尝试仅选择目录中的.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)
我是初学者,我真的不知道如何使用获得的输出创建新的文本文件.
我不确定如何正确初始化我的哈希 - 我正在尝试为输入文件中的耦合行中的值创建键/值对.
例如,我的输入如下所示:
@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) 我想保存生成的绘图,其名称与输入文件的名称相同.输入是通过命令行,所以我不确定如何做到这一点.
#!/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.
谢谢!!
我的输入文件包含空间均匀的列,如下所示:
X a b C D
Run Code Online (Sandbox Code Playgroud)
如何使用awk指定列之间的空格数,以便我得到这样的结果:
X a b C D
Run Code Online (Sandbox Code Playgroud)
我知道如何使用awk计算列之间的空格,我只是不知道如何添加这些空格以获得我想要的布局.有什么建议?