小编aim*_*aim的帖子

matplotlib:当使用append_axes时,如何指示我想要添加子面板的轴?

我一直在看Matplotlib库中的示例"scatter hist".

目前,x/y子图分别位于顶部和右侧,即:

divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("top", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)
Run Code Online (Sandbox Code Playgroud)

但是,如果我将子图位置更改为:

divider = make_axes_locatable(axScatter)
axHistx = divider.append_axes("bottom", 1.2, pad=0.1, sharex=axScatter)
axHisty = divider.append_axes("right", 1.2, pad=0.1, sharey=axScatter)
Run Code Online (Sandbox Code Playgroud)

即将x子面板移动到底部,然后append_axes将y子图添加到x子图的右侧,而不是散点图的右侧.(我上传图片,但我还没有足够的声誉发布图片...... grrr)!

如何告诉append_axes我想将y子图附加到包含散点图的"主轴"的右侧?我猜我需要在某处再次指定对象axScatter(虽然我认为这divider = make_axes_locatable(axScatter)是为了什么?!)或者我猜测分隔符在窗口面板中设置了一个网格我需要告诉append_axes哪个单元格包含主轴.

谢谢,

亚历克斯

python matplotlib divider subplot

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

Matplotlib:在子图的网格中重新定位子图

我试图制作一个包含7个子图的情节.目前我正在绘制两个列,一个有四个图,另一个有三个,就像这样:在此输入图像描述

我正在按照以下方式构建这个情节:

    #! /usr/bin/env python
    import numpy as plotting
    import matplotlib
    from pylab import *
    x = np.random.rand(20)
    y = np.random.rand(20)
    fig = figure(figsize=(6.5,12))
    subplots_adjust(wspace=0.2,hspace=0.2)
    iplot = 420
    for i in range(7):
       iplot += 1
       ax = fig.add_subplot(iplot)
       ax.plot(x,y,'ko')
       ax.set_xlabel("x")
       ax.set_ylabel("y")
    savefig("subplots_example.png",bbox_inches='tight')
Run Code Online (Sandbox Code Playgroud)

但是,对于发布我认为这看起来有点难看 - 我想要做的是将最后一个子图移动到两列之间的中心.那么,调整最后一个子图的位置以使其居中的最佳方法是什么?即,在3X2网格中有前6个子图,下面的最后一个子图在两列之间居中.如果可能的话,我希望能够保持for循环,以便我可以简单地使用:

    if i == 6:
       # do something to reposition/centre this plot     
Run Code Online (Sandbox Code Playgroud)

谢谢,

亚历克斯

python customization matplotlib subplot

8
推荐指数
2
解决办法
9393
查看次数

TCL:如何检查环境变量是否已设置

我正在尝试构建一个模块文件,并且我想包含一个 if 语句来检查是否已经设置了某些环境变量(例如 PATH、LD_LIBRAY_PATH、PYTHON_PATH...)。

我尝试了几种不同的语法选项(在此处搜索、官方文档和其他论坛之后)但是当我尝试时:

module use modulefiles
module load mymodule
Run Code Online (Sandbox Code Playgroud)

我不断收到ERROR:102: Tcl command execution failed错误。以下是我尝试过的一些选项:

一世)

set myTools /path/to/my/Tools
if { info exists $LD_LIBRARY_PATH } {
    setenv LD_LIBRARY_PATH $myTools/lib:$myTool/lib64:$LD_LIBRARY_PATH
} else {
    setenv LD_LIBRARY_PATH $myTools/lib:$myTools/lib64
}
Run Code Online (Sandbox Code Playgroud)

ii)

set myTools /path/to/my/Tools
if { [info exists $LD_LIBRARY_PATH] } {
    setenv LD_LIBRARY_PATH $myTools/lib:$myTool/lib64:$LD_LIBRARY_PATH
} else {
    setenv LD_LIBRARY_PATH $myTools/lib:$myTools/lib64
}
Run Code Online (Sandbox Code Playgroud)

三)

set myTools /path/to/my/Tools
if { $?LD_LIBRARY_PATH } {
    setenv LD_LIBRARY_PATH $myTools/lib:$myTool/lib64:$LD_LIBRARY_PATH
} else {
    setenv LD_LIBRARY_PATH $myTools/lib:$myTools/lib64
}
Run Code Online (Sandbox Code Playgroud)

检查可能已经设置的环境变量是否存在的正确语法是什么,例如在 …

module tcl environment-variables

6
推荐指数
2
解决办法
9893
查看次数

将旋转应用于healpy中的HEALPix贴图

我有一个 HEALPix 地图,我已经使用healpy阅读过它,但是它是在银河坐标中,我需要它在天球/赤道坐标中。有人知道转换地图的简单方法吗?

我尝试使用healpy.Rotator从 (l,b) 转换为 (phi,theta),然后使用healpy.ang2pix对像素重新排序,但地图看起来仍然很奇怪。

如果有一个类似于Rotator您可以调用的函数,那就太好了map = AnotherRotator(map,coord=['G','C']):有人知道有这样的功能吗?

谢谢,

亚历克斯

python rotator healpy

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

matplotlib:半球/楔形的自定义投影

我正在看matplotlib画廊中的自定义投影示例 - 我正在尝试修改它以仅绘制南半球.我已将必要的[-pi/2,pi/2]限制调整为[-pi/2,0].现在我一直在看:

def _gen_axes_patch(self):
    """
    Override this method to define the shape that is used for the
    background of the plot.  It should be a subclass of Patch.

    In this case, it is a Circle (that may be warped by the axes
    transform into an ellipse).  Any data and gridlines will be
    clipped to this shape.
    """
    #return Circle((0.5, 0.5), 0.5)
    return Wedge((0.5,0.5), 0.5, 180, 360)

def _gen_axes_spines(self):
    return {'custom_hammer':mspines.Spine.circular_spine(self,
                                                  (0.5, 0.5), 0.25)}
Run Code Online (Sandbox Code Playgroud)

如您所见,我用Wedge替换了Circle补丁.这就是投影图目前的样子: 投影图

脊柱仍然遵循圆/椭圆 - 我如何指定我希望脊椎遵循楔形的边界? …

python projection axes matplotlib

3
推荐指数
1
解决办法
1303
查看次数

为什么从Python内部调用时某些Unix命令不起作用?(没有找到指令)

我经常希望从Python内部执行Unix命令,但我最近发现找不到某些命令.一个例子是'limit'命令:

$ echo $SHELL
/bin/tcsh
$ limit vmemoryuse 1000m
$ python
Python 2.7.3 (default, Aug  3 2012, 20:09:51) 
[GCC 4.1.2 20080704 (Red Hat 4.1.2-50)] on linux2
Type "help", "copyright", "credits" or "license" for more information.
>>> import os
>>> os.system("echo $SHELL")
/bin/tcsh
0
>>> os.system("limit vmemoryuse 1000m")
sh: limit: command not found
32512
>>>
Run Code Online (Sandbox Code Playgroud)

另一个例子是'setenv'命令.为什么这些命令在Python中不起作用?我尝试过使用'os'和'subprocess'模块但没有成功.有没有人知道允许我从Python内部成功调用这些命令的另一个模块或方法?

python unix shell command

3
推荐指数
1
解决办法
2711
查看次数