小编nil*_*que的帖子

matplotlib的colorbar中的小刻度

我目前正试图在颜色栏中设置小刻度,但根本无法使其工作.我尝试了3种方法(见下面的代码),但所有这些方法似乎都没有起作用.它实际上可能在颜色栏中有小的刻度吗?

import numpy as np
import matplotlib.pyplot as plt
from matplotlib.colors import LogNorm
from matplotlib.ticker import FixedLocator, FormatStrFormatter

# fill grid
x = np.linspace(1,10,10)
y = np.linspace(1,10,10)

X, Y = np.meshgrid(x,y)
Z = np.abs(np.cos(X**2 - Y**2) * X**2 * Y)

# plot
f, ax = subplots(1)
p = plt.pcolormesh(X, Y, Z, norm=LogNorm(), vmin=1e-2, vmax=1e2)
cb = plt.colorbar(p, ax=ax, orientation='horizontal', aspect=10)

minor_ticks = np.arange(1,10,2)
#cb.set_ticks(minor_ticks, minor=True) # error: doesn't support keyword argument 'minor'
#cb.ax.xaxis.set_ticks(minor_ticks, minor=True) # plots an extremely small colorbar, …
Run Code Online (Sandbox Code Playgroud)

python matplotlib

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

Python的argh库:在帮助消息中保留docstring格式

在我的脚本中搜索更快的方法来解析命令行参数时,我遇到了argh库.

我非常喜欢argh的功能但是我遇到了一个阻止我使用它的缺点,这与我在调用-help选项时显示的默认帮助消息有关:默认情况下,函数的docstring是显示在参数列表的顶部.这很好,但初始格式丢失了.例如,请参阅以下示例脚本

import argh

def func(foo=1, bar=True):
    """Sample function.

        Parameters:
            foo: float
                An example argument.
            bar: bool
                Another argument.
    """
    print foo, bar

argh.dispatch_command(func, argv=['-h'])
Run Code Online (Sandbox Code Playgroud)

这将导致以下输出

usage: script.py [-h] [-f FOO] [-b]

Sample function. Parameters: foo: float An example argument. bar: bool Another
argument.

optional arguments:
  -h, --help         show this help message and exit
  -f FOO, --foo FOO
  -b, --bar
Run Code Online (Sandbox Code Playgroud)

是否有(简单)方法获得如下输出?

usage: script.py [-h] [-f FOO] [-b]

Sample function.

    Parameters:
        foo: float
            An example argument.
        bar: bool
            Another …
Run Code Online (Sandbox Code Playgroud)

python argparse argh

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

使用 mpi4py 在脚本中调用子进程

我在从 python 脚本调用外部程序时遇到问题,我想在其中使用 mpi4py 在不同处理器之间分配工作负载。

基本上,我想使用我的脚本,以便每个内核在不同的文件夹中准备一些用于计算的输入文件,然后在该文件夹中启动一个外部程序,等待输出,最后读取结果并收集它们。

但是,我根本无法使外部程序调用正常工作。在寻找这个问题的解决方案时,我发现我面临的问题似乎非常基本。下面的简单示例清楚地说明了这一点:

#!/usr/bin/env python
import subprocess

subprocess.call(“EXTERNAL_PROGRAM”, shell=True)
subprocess.call(“echo test”, shell=True)
Run Code Online (Sandbox Code Playgroud)

./script.py工作正常(两个调用都有效),而mpirun -np 1 ./script.py只输出test. 这种情况有什么解决方法吗?该程序肯定在我的 PATH 中,但如果我使用绝对路径进行调用,它也会失败。

这个问题似乎是相关的,遗憾的是没有答案......

编辑:

在我的问题的原始版本中,我没有包含任何使用 mpi4py 的代码,即使我在标题中提到了这个模块。所以这里是一个更详细的代码示例:

#!/usr/bin/env python

import os
import subprocess

from mpi4py import MPI


def worker(parameter=None):
    """Make new folder, cd into it, prepare the config files and execute the
    external program."""

    cwd = os.getcwd()
    dir = "_calculation_" + parameter
    dir = os.path.join(cwd, dir)
    os.makedirs(dir)
    os.chdir(dir)

    # Write input for simulation & …
Run Code Online (Sandbox Code Playgroud)

python subprocess mpi4py

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

标签 统计

python ×3

argh ×1

argparse ×1

matplotlib ×1

mpi4py ×1

subprocess ×1