我正在尝试将pandas数据帧可视化为热图,并且我尝试使用所有绘图函数时出现了奇怪的错误(我尝试使用DataFrame对象和DataFrame.values
数组,并且没有任何更改).我不明白它可能是什么原因.这是数据帧:
1 2 3 4 5 6 7 8 9 10 11 12 \
1 0 1163 986 1105 1315 1472 844 560 1033 867 610 703
2 1163 0 1774 803 1091 899 704 806 891 648 1082 1199
3 986 1774 0 679 880 798 1268 931 560 1128 774 481
4 1105 803 679 0 742 654 887 765 1113 1079 605 928
5 1315 1091 880 742 0 924 580 658 1073 1008 719 …
Run Code Online (Sandbox Code Playgroud) 我需要在两个文件中组合行,根据条件,其中一个文件的行是第二个文件行的一部分.
第一个文件的一部分:
12319000 -64,7357668067227 -0,1111052148685535 12319000 -79,68527661064425 -0,13231739777754026 12319000 -94,69642857142858 -0,15117839559513543 12319000 -109,59301470588237 -0,18277783185642743 12319001 99,70264355742297 0,48329515727315125 12319001 84,61113445378152 0,4060446341409862 12319001 69,7032037815126 0,29803063228455073 12319001 54,93886554621849 0,20958105041136763 12319001 39,937394957983194 0,13623056582981297 12319001 25,05574229691877 0,07748669438398018 12319001 9,99716386554622 0,028110643107892755
第二个文件的一部分:
12319000.abf mutant 1 12319001.abf mutant 2 12319002.abf mutant 3
我需要创建一个文件,其中包含以下内容:第一个文件中的所有行和第二个文件中的所有行.除了第一列中的文件名.
正如您所看到的,第一个文件中有多行,而第二个中的行与另一行相对应.我需要对每一行执行该操作,因此输出应如下所示:
12319000 -94,69642857142858 -0,15117839559513543 mutant 1 12319000 -109,59301470588237 -0,18277783185642743 mutant 1 12319001 99,70264355742297 0,48329515727315125 mutant 2 12319001 84,61113445378152 0,4060446341409862 mutant 2
我写了这段代码:
oocytes = open(file_with_oocytes, 'r')
results = open(os.path.join(path, 'results.csv'), 'r')
results_new = open(os.path.join(path, …
Run Code Online (Sandbox Code Playgroud) 我最近看到这个包用于R/ggplot2,它允许一个人在一个绘图上有多个注释并自动调整它们的位置以最小化重叠,这样就提高了可读性.python/matplotlib有类似的东西吗?
编辑:我发现Matplotlib重叠注释/文本,它看起来很有希望,但似乎结果不如R包.
例:
from matplotlib import pyplot as plt
import numpy as np
xs = np.arange(10, step=0.1)+np.random.random(100)*3
ys = np.arange(10, step=0.1)+np.random.random(100)*3
labels = np.arange(100)
plt.scatter(xs, ys)
for x, y, s in zip(xs, ys, labels):
plt.text(x, y, s)
plt.show()
Run Code Online (Sandbox Code Playgroud)
你可以看到,即使这样的短标签在数据密度很高时也会造成一个疯狂的混乱.
我需要用matplotlib的imshow()绘制图像,然后用不同的颜色标记一些像素.只是在初始数组中更改它们的值将无法工作,因为我需要使用我正在使用的colourmap中不存在的颜色.所以我最初的目的是在第一个图像上方绘制第二个生成的数组,其中大部分都被屏蔽,所需的像素没有被屏蔽,并且有一些值(对于不同的坐标可能使用不同的颜色可能不同).并且它与matplotlib的交互式查看器很好地协同工作,但是当保存到文件中时,一切都会因为这个错误而被扭曲,我在相同的情况下报告:https://github.com/matplotlib/matplotlib/issues/3057
是否有其他选项可以改变某些像素的颜色?
我想制作像 t 这样的键盘快捷键,当主窗口关闭时它会起作用(但进程正在运行,因为程序有一个统一的应用程序)。我看到了一个包 keybinder,但似乎不能将它与 Gtk3 和 pygobject 一起使用。还是可以?那怎么办?如果没有,有没有其他方法可以做到这一点?该应用程序适用于 linux (ubuntu),我使用 python 2.7。
我正在用seaborn's密谋regplot
.据我所知,它pyplot.scatter
在幕后使用.所以我假设如果我将散点图的颜色指定为序列,那么我就可以调用plt.colorbar
,但它似乎不起作用:
sns.regplot('mapped both', 'unique; repeated at least once', wt, ci=95, logx=True, truncate=True, line_kws={"linewidth": 1, "color": "seagreen"}, scatter_kws={'c':wt['Cis/Trans'], 'cmap':'summer', 's':75})
plt.colorbar()
Traceback (most recent call last):
File "<ipython-input-174-f2d61aff7c73>", line 2, in <module>
plt.colorbar()
File "/usr/local/lib/python2.7/dist-packages/matplotlib/pyplot.py", line 2152, in colorbar
raise RuntimeError('No mappable was found to use for colorbar '
RuntimeError: No mappable was found to use for colorbar creation. First define a mappable such as an image (with imshow) or a contour set (with contourf). …
Run Code Online (Sandbox Code Playgroud) 我有一个函数的输出(一个很长的!),它看起来像这样:
[[(0.0, 1.0, 2.0), (1.0, 2.0, 0.0), (2.0, 1.0, 0.0)], [(1.6324986294474886e-06, 1.000000272083105, 1.9999992744450537), (1.0, 1.9999985559929883, 9.626713411705526e-07), (1.9999957124111243, 1.000000714598146, 9.527975279416402e-07)], ......................, [(0.00016488526381860965, 1.0000274825531668, 1.9999267116402146), (0.9999999810184469, 1.9998541492231847, 9.723903843230245e-05), (1.9995669148822666, 1.000072183688789, 9.62532545797885e-05)]]
Run Code Online (Sandbox Code Playgroud)
我不喜欢输出的结构,但在函数中使用它非常方便,它返回它.
但是我需要将输出格式化为这样:
0.0 1.0 2.0 A
1.0 2.0 0.0 B
2.0 1.0 0.0 C
1.6324986294474886e-06 1.000000272083105 1.9999992744450537 A
1.0 1.9999985559929883 9.626713411705526e-07 B
1.9999957124111243 1.000000714598146 9.527975279416402e-07 C
Run Code Online (Sandbox Code Playgroud)
我有这个代码:
obj = 'A', 'B', 'C'
for n in results():
for z in range(len(results()[0])):
k = n[z], obj[z]
print '\t'.join(map(str, k))
Run Code Online (Sandbox Code Playgroud)
('results'是函数的名称,返回大列表)
它给了我这个:
(0.0, 1.0, …
Run Code Online (Sandbox Code Playgroud) python ×8
matplotlib ×4
seaborn ×2
formatting ×1
gtk3 ×1
numpy ×1
opencv ×1
pandas ×1
plot ×1
pygobject ×1
scikit-image ×1
scipy ×1