小编C_Z*_*_Z_的帖子

将颜色条添加到现有轴

我正在制作一些互动图,我想添加一个颜色条图例.我不希望颜色条在它自己的轴上,所以我想将它添加到现有轴.我这样做有困难,因为我发现的大多数示例代码都为colorbar创建了一个新的轴.

我尝试使用下面的代码matplotlib.colorbar.ColorbarBase,它为现有的轴添加了一个颜色条,但它给了我奇怪的结果,我无法弄清楚如何指定颜色条的属性(例如,它放在轴上的位置和什么它的大小)

import matplotlib
import matplotlib.pyplot as plt
from matplotlib.cm import coolwarm
import numpy as np

x = np.random.uniform(1, 10, 10)
y = np.random.uniform(1, 10, 10)
v = np.random.uniform(1, 10, 10)

fig, ax = plt.subplots()

s = ax.scatter(x, y, c=v, cmap=coolwarm)

matplotlib.colorbar.ColorbarBase(ax=ax, cmap=coolwarm, values=sorted(v),
                                 orientation="horizontal")
Run Code Online (Sandbox Code Playgroud)

使用fig.colorbar而不是matplotlib.colorbar.ColorbarBase仍然没有给我我想要的东西,我仍然不知道如何调整颜色条的属性.

fig.colorbar(s, ax=ax, cax=ax)
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

假设我想在左上角有颜色条,在图的顶部延伸大约一半.我该怎么做呢?

我最好为此编写一个自定义函数,也许使用LineCollection

python matplotlib

35
推荐指数
3
解决办法
8万
查看次数

dplyr mutate rowwise max of column范围

我可以使用以下命令返回最多2列

newiris<-iris %>%
 rowwise() %>%
 mutate(mak=max(Sepal.Width,Petal.Length))
Run Code Online (Sandbox Code Playgroud)

我想要做的是在一系列列中找到最大值,所以我不必像这样命名每一列

newiris<-iris %>%
 rowwise() %>%
 mutate(mak=max(Sepal.Width:Petal.Length))
Run Code Online (Sandbox Code Playgroud)

有任何想法吗?

r dplyr

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

将float转换为str时,如何检查默认的小数精度?

将a转换float为a时str,我可以指定要显示的小数点数

'%.6f' % 0.1
> '0.100000'
'%.6f' % .12345678901234567890
> '0.123457'
Run Code Online (Sandbox Code Playgroud)

但是,当简单地调用str一个float在Python 2.7,它似乎默认为12小数点最多

str(0.1)
>'0.1'
str(.12345678901234567890)
>'0.123456789012'
Run Code Online (Sandbox Code Playgroud)

这个最大小数点数定义/记录在哪里?我能以编程方式获取此号码吗?

python string floating-point

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

使用一个gsub调用删除尾随和前导空格以及额外的内部空格

我知道你可以删除尾随和前导空格

gsub("^\\s+|\\s+$", "", x)
Run Code Online (Sandbox Code Playgroud)

你可以删除内部空间

gsub("\\s+"," ",x)
Run Code Online (Sandbox Code Playgroud)

我可以将它们组合成一个函数,但我想知道是否有办法只使用一个gsub函数

trim <- function (x) {
  x <- gsub("^\\s+|\\s+$|", "", x)
  gsub("\\s+", " ", x)
}

testString<- "  This is a      test. "

trim(testString)
Run Code Online (Sandbox Code Playgroud)

regex r

11
推荐指数
3
解决办法
1283
查看次数

测试两个numpy数组是否(接近)相等,包括形状

我想测试两个numpy数组是否(接近)相等,所以我一直在使用该np.allclose函数.唯一的问题是,True如果给定二维矩阵和相等元素的三维矩阵,则返回.

import numpy as np

x = np.array([[3.14159265, -0.1], [-0.1, 0.1]])

y = np.array([[math.pi, -0.1], [-0.1, 0.1]])

z1 = np.array([[[3.14159265, -0.1], [-0.1, 0.1]],
              [[3.14159265, -0.1], [-0.1, 0.1]]])
z2 = np.array([[[math.pi, -0.1], [-0.1, 0.1]],
              [[math.pi, -0.1], [-0.1, 0.1]]])  


np.allclose(x,y)
# Returns true, as expected

np.allclose(x,z1)
# Also returns true, even though matrices are different shapes. Unwanted.
Run Code Online (Sandbox Code Playgroud)

现在,我知道np.array_equal,比较元素和形状,但它不允许我测试元素是否接近,只有它们是相等的.例如,

np.array_equal(x,y)
Run Code Online (Sandbox Code Playgroud)

返回 False

是否有一个我可以使用的函数将返回true (x,y),(z1,z2)(x,z1)在这种情况下是false ?

python numpy

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

使用Cython进行线性分析内部函数

我使用这个答案来配置我的Cython代码已经取得了相当不错的成功,但它似乎与嵌套函数无法正常工作.在此笔记本中,您可以看到在嵌套函数上使用线轮廓仪时不显示轮廓.有没有办法让这个工作?

python cython nested-function

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

在 iPython 中无需滚动多行命令即可转到上一个命令

我有当前最新版本的 iPython (7.6.1),当我尝试使用向上箭头键访问之前的命令时,当我点击多行命令时,向上箭头会慢慢向上穿过每一行,而不是转到上一个命令。要到达多行命令之前的命令,我必须一直滚动到多行命令的顶部,然后才能到达上一个命令。是否有另一种快捷方式可以用来跳过多行命令并获取上一个命令?

ipython

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

Numpy 替换值并返回新数组

numpy是否有类似的函数np.put返回一个新数组而不是就地修改数组?像这样的东西:

def put_copy(arr, ind, v, mode="raise"):
    arr_copy = arr.copy()
    np.put(arr_copy, ind, v, mode)
    return arr_copy

arr = np.arange(5)
print put_copy(arr, [0,2], [-44,-55])
# [-44   1 -55   3   4]
Run Code Online (Sandbox Code Playgroud)

python arrays numpy

8
推荐指数
0
解决办法
909
查看次数

如何通过节点或叶子中的标签折叠系统发育树中的分支?

我为一个蛋白质家族构建了一个系统发育树,可以将其分成不同的组,按照受体类型或反应类型对每个蛋白质进行分类.树中的节点被标记为受体类型.

在系统发育树中,我可以看到属于相同组或受体类型的蛋白质在同一分支中聚集在一起.所以我想折叠这些具有共同标签的分支,按给定的关键字列表对它们进行分组.

命令将是这样的:

./collapse_tree_by_label -f phylogenetic_tree.newick -l list_of_labels_to_collapse.txt -o collapsed_tree.eps(或pdf)

我的list_of_labels_to_collapse.txt将是这样的:A B C D

我的纽约树将是这样的:(A_1:0.05,A_2:0.03,A_3:0.2,A_4:0.1):0.9,(((B_1:0.05,B_2:0.02,B_3:0.04):0.6,(C_1:0.6) ,C_2:0.08):0.7):0.5,(D_1:0.3,D_2:0.4,D_3:0.5,D_4:0.7,D_5:0.4):1.2)

没有折叠的输出图像是这样的:http: //i.stack.imgur.com/pHkoQ.png

输出图像折叠应该是这样的(collapsed_tree.eps):http: //i.stack.imgur.com/TLXd0.png

三角形的宽度应表示分支长度,三角形的高度必须表示分支中的节点数.

我一直在玩R.中的"猿"包.我能够绘制一个系统发育树,但我仍然无法弄清楚如何通过标签中的关键字来折叠分支:

require("ape")
Run Code Online (Sandbox Code Playgroud)

这将加载树:

cat("((A_1:0.05,A_2:0.03,A_3:0.2,A_4:0.1):0.9,(((B_1:0.05,B_2:0.02,B_3:0.04):0.6,(C_1:0.6,C_2:0.08):0.7):0.5,(D_1:0.3,D_2:0.4,D_3:0.5,D_4:0.7,D_5:0.4):1.2):0.5);", file = "ex.tre", sep = "\n")
tree.test <- read.tree("ex.tre")
Run Code Online (Sandbox Code Playgroud)

这应该是崩溃的代码

这将绘制树:

plot(tree.test)
Run Code Online (Sandbox Code Playgroud)

plot r phylogeny ape-phylo

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

确定对象是否为Foo类型而不导入类型Foo

假设我在文件中定义了一个类:

import stuff
import more stuff
import stuff that takes a long time to import
class Foo(object):
    def __init__(self, arg1, arg2 etc.):
        self.arg1 = arg1 
        self.arg2 = arg2
        # Lots of other stuff
    # Lots of methods
Run Code Online (Sandbox Code Playgroud)

在另一个文件中我有这个代码:

from big_file import Foo
def do_stuff(obj):
    if isinstance(obj, Foo):
        do_stuff
    else:
        do_other_stuff
Run Code Online (Sandbox Code Playgroud)

假设文件Foo需要很长时间才能导入,原因是我无法控制.如何重构此代码以不导入Foo但仍可靠地检查类型?我不认为鸭子打字适合我的特殊情况.

我应该检查obj基础的字符串表示吗?还是有另一种更规范的方式?

python typechecking python-2.6

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