小编kjo*_*kjo的帖子

如何获取Matplotlib生成的散点图的像素坐标?

我使用Matplotlib生成散点图的PNG文件.现在,每个散点图,除了PNG文件,我想在生成散点图中各点的像素坐标列表.

我用来为散点图生成PNG文件的代码基本上是这样的:

from matplotlib.figure import Figure
from matplotlib.pyplot import setp
from matplotlib.backends.backend_agg import FigureCanvasAgg

...

fig = Figure(figsize=(3, 3), dpi=100)
ax = fig.gca()
for (x, y), m, c in zip(points, markers, colors):
    ax.scatter(x, y, marker=m, c=c, s=SIZE, vmin=VMIN, vmax=VMAX)

# several assorted tweaks like ax.spines['top'].set_color('none'), etc.

setp(fig, 'facecolor', 'none')

# FigureCanvasAgg(fig).print_png(FILEPATH)
Run Code Online (Sandbox Code Playgroud)

...(UPPERCASE中的变量代表可设置的参数).

我怎样才能(px, py)在结果PNG中产生一对像素坐标对应的点points

[编辑:删除了一些废话imshow.]

[编辑:

好的,这是我最终提出的,基于Joe Kington的建议.

# continued from above...

cnvs = FigureCanvasAgg(fig)
fig.set_canvas(cnvs)
_, ht = cnvs.get_width_height()
pcoords = …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

如何在Windows 7上获得ipython图形控制台?

在哪里可以找到安装ipython qtconsoleWindows 7(64位)所需模块的分步说明?

(对不起这个问题的简洁.我需要几个小时的时间来记下我尝试的所有事情,并且几乎和任何人一样阅读它.我只会注意到我发现的所有内容甚至是远程相关的.到pyqt4似乎非常特定于Unix,最多只是粗略地点头看看Windows用户可能会尝试...)

ipython

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

如何自定义DataFrame显示的标题和列宽?

作为一项规则,我喜欢使用长的描述性列名(例如,estimated_background_signal而不仅仅是bg)用于DataFrame对象.这种偏好的一个缺点是,DataFrame显示形式有几列比它们的值要宽得多.例如:

In [10]: data.head()
     barcode estimated_background_signal inhibitor_code inhibitor_concentration
0  R00577279                         133            IRB                   0.001
1  R00577279                         189            SNZ                   0.001
2  R00577279                         101            CMY                   0.001
3  R00577279                         112            BRC                   0.001
4  R00577279                         244            ISB                   0.001
Run Code Online (Sandbox Code Playgroud)

如果显示器更窄则会很好.无视标题,最窄的显示将是:

0 R00577279 113 IRB 0.001
1 R00577279 189 SNZ 0.001
2 R00577279 101 CMY 0.001
3 R00577279 112 BRC 0.001
4 R00577279 244 ISB 0.001
Run Code Online (Sandbox Code Playgroud)

......但完全取消标题并不是一个完全令人满意的解决方案.一个更好的方法是使显示宽度足以允许一些标题,可能占用几行:

    barcode estim inhib inhib
            ated_ itor_ itor_
            backg code  conce
0 R00577279 …
Run Code Online (Sandbox Code Playgroud)

pandas

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

将相对路径转换为绝对路径的功能?

我花了很长时间无法找到内置的MATLAB函数来将相对文件路径转换为绝对文件路径(可移植).

有吗?

我正在寻找一些最好"内置"的东西(即在MATLAB发行版的某个地方可用,包括其中一个工具箱).即使是"包私有"功能也是可以接受的,只要我能检查功能的源代码即可.第二好的是第三方功能,只要它有一个像样的测试套件.我不是在寻找针对这个问题而编写的函数.1

如果不存在上述任何一种情况,即使是(可移植地)测试路径是否是绝对的功能也会(具有与之前相同的条件:"内置"功能或带有测试套件的第三方功能) .


1实现这样一个函数的困难不是编写函数本身,而是为它编写一个足够完整的测试套件(当然,确保函数通过所有测试!).

matlab

7
推荐指数
3
解决办法
6381
查看次数

在Functor实例声明中

这加载没有错误:

data Const c a = Const c

instance Functor (Const c) where
    fmap _ (Const v) = Const v
Run Code Online (Sandbox Code Playgroud)

...但是这个

data Const' c a = Const' c

instance Functor (Const' c) where
    fmap _ cv = cv
Run Code Online (Sandbox Code Playgroud)

......失败了:

    Couldn't match type `a' with `b'
      `a' is a rigid type variable bound by
          the type signature for fmap :: (a -> b) -> Const' c a -> Const' c b
          at test.hs:4:5
      `b' is a rigid type variable bound by …
Run Code Online (Sandbox Code Playgroud)

haskell

7
推荐指数
2
解决办法
202
查看次数

如何自动括起任意haskell表达式?

我正在学习haskell,我在心理上解析我遇到的许多haskell表达式时遇到了很多困难.

当然,我希望通过足够的练习,精神上解析haskell将成为第二天性,但与此同时,为了理解我所遇到的,我想找到一些自动翻译任意的方法"标准haskell" 1表达式,其中通过引入必要的括号消除了所有"模糊的" 2个子表达式.

例如,它会翻译表达式

f g h i
Run Code Online (Sandbox Code Playgroud)

......进入

((f g) h) i
Run Code Online (Sandbox Code Playgroud)

..., 要么

a -> b -> c -> d
Run Code Online (Sandbox Code Playgroud)

......进入

a -> (b -> (c -> d))
Run Code Online (Sandbox Code Playgroud)

......等

最好,这将是我可以使用我的手机访问的工具,因为我在远离正确的计算机上阅读haskell的大部分内容.


1当然,没有这样的工具可能适用于未知固定性和关联性的自定义操作符."标准haskell"是指前奏和标准haskell库中定义的内容.

2我在这里使用"含糊不清"作为"在没有优先规则的情况下模棱两可"的简写.除非有一些优先规则解决了首先执行两个操作中的哪个操作的问题,否则 Eg 2 + 3 * 5是不明确的.

haskell

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

术语"工作","任务"和"步骤"如何相互关联?

SLURM文档中使用的术语"作业","任务"和"步骤"如何相互关联?

AFAICT,一个工作可能包含多个任务,并且它由多个步骤组成,但是,假设这是真的,我仍然不清楚任务和步骤是如何相关的.

查看显示作业/任务/步骤完全复杂性的示例会很有帮助.

slurm

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

如何运行表单test/a.py的unitests?

是否可以使用如下文件结构实现Python项目?:

myproj
??? a.py
??? b.py
??? c.py
??? test/
    ??? a.py
    ??? b.py
    ??? c.py
Run Code Online (Sandbox Code Playgroud)

特别要注意,下面的测试脚本test/与它们正在测试的模块文件具有相同的基本名称 1.(换句话说,test/a.py包含单元测试a.py; test/b.py包含那些b.py等等)

test/所有导入下的测试unittest和定义的子类unittest.TestCase.

我想知道如何在test/单独和一起运行测试.

我尝试了很多变种python -m unittest ...,但它们都失败了(下面的例子),或者最终运行零测试.

例如,

% python -m unittest test.a
Traceback (most recent call last):
  File "/usr/lib/python2.7/runpy.py", line 174, in _run_module_as_main
    "__main__", fname, loader, pkg_name)
  File "/usr/lib/python2.7/runpy.py", line 72, in _run_code
    exec code in run_globals
  File "/usr/lib/python2.7/unittest/__main__.py", line 12, in …
Run Code Online (Sandbox Code Playgroud)

python testing unit-testing project

7
推荐指数
2
解决办法
652
查看次数

setuptools.setup 的 name 参数值如何影响结果?

我最近收到了一组 Python 代码,由一个学术实验室的研究生编写,由一个 Python 脚本和脚本使用的大约六个单文件 Python 模块组成。所有这些文件(脚本和模块)都在同一个目录中。

我想用来pip在虚拟环境中安装此代码,所以我尝试setup.py为它编写一个文件,这是我以前从未做过的。

我让这个装置工作起来,我对我投入的大部分东西有一个模糊的理解setup.py

对此的一个例外是函数name关键字的值setuptools.setup

根据我找到的文档,这个参数应该是“包的名称”,但我并没有告诉我它的价值最终是如何重要的。换句话说,这个值是否只对人类读者重要,还是它实际上会影响pip install该命令安装的方式或代码是否有效?

因此,我不知道该给这个参数什么值,所以我只是想出了一个听起来合理的名字,但没有尝试让它与代码库中的其他东西相匹配。令我惊讶的是,什么都没坏!我的意思是pip安装完成没有错误,并且安装的代码在虚拟环境中正确执行。

我进行了一些实验,似乎我提出的几乎任何值都同样可以。

为了下面的描述,假设我给name参数赋值whatever。然后,据我所知,这唯一的影响是在与文件相同的目录中whatever.egg-info/创建了一个具有该名称的子目录(通过pip?)setup.py,并且该子目录包含两个包含字符串的文件whatever

这些文件之一是whatever.egg-info/PKG-INFO,其中包含行

Name: whatever
Run Code Online (Sandbox Code Playgroud)

另一个是whatever.egg-info/SOURCES.txt,它列出了几个相对路径,包括一些以whatever.egg-info/.


也许这是一个包装问题太简单了,价值name不重要?

问:谁能给我一个简单的例子,其中setuptools.setup'sname参数的错误值会导致pip install或安装的代码失败?

python pip setuptools

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

重复调用函数的功能?

考虑假设函数repeatcall,它将参数作为无参数可调用func和正整数n,并返回一个列表,其成员是通过执行func() n次数获得的.它支持无限的愚蠢的hijinks流,如:

>>> repeatcall(lambda: id(dict()), 5)
[45789920, 45788064, 45807216, 45634816, 45798640]

>>> urandom = lambda: struct.unpack('Q', open('/dev/urandom').read(8))[0]
>>> repeatcall(urandom, 3)
[3199039843823449742, 14990726001693341311L, 11583468019313082272L]

>>> class Counter(itertools.count): __call__ = itertools.count.next
>>> repeatcall(Counter(100, -2), 4)
[100, 98, 96, 94]
Run Code Online (Sandbox Code Playgroud)

我可以发誓,我已经repeatcall在Python 2.x标准库中看到过像某个函数,但我找不到它.如果我没有梦想这个,我可以在标准库中找到它吗?

PS:我知道推出自己的产品是微不足道的,但我讨厌重新发明轮子,特别是那些已经在标准库中的轮子.我不是在问自己怎么样.

编辑:让我更明确的是我不会问如何编码repeatcall.

python iteration iterator

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