小编Juh*_*uha的帖子

如何在matplotlib中创建一个可拖动的图例?

我在matplotlib中的轴对象上绘制了一个图例,但声称将其置于智能位置的默认定位似乎不起作用.理想情况下,我希望用户可以拖动图例.如何才能做到这一点?

python matplotlib legend draggable

40
推荐指数
3
解决办法
9245
查看次数

如何在创建matplotlib图例后对其进行修改?

我可以访问图形实例fig = pylab.gcf().我知道在这个图中有一个传说,我可以通过它访问它myLegend = fig.gca().legend_.现在我想更改图例的属性.其中一些我可以通过设置者访问myLegend.set_frame_on(True).

创建图例时,它接受许多关键字参数:

class matplotlib.legend.Legend(parent,handles,labels,loc = None,numpoints = None,markerscale = None,scatterpoints = None,scatteryoffsets = None,prop = None,fontsize = None,borderpad = None,labelspacing = None,handlelength = None,handlehepad = None,handletextpad = None,borderaxespad = None,columnspacing = None,ncol = 1,mode = None,fancybox = None,shadow = None,title = None,framealpha = None,bbox_to_anchor = None,bbox_transform = None ,frameon = None,handler_map = None)

创建图例,如何修改图例中的所有关键字参数?

其中一个有问题的是numpoints(图例中的标记数量,默认值为2).以下是我想要更改它的示例:

这显示了我想如何编程

import pylab
pylab.plot(0,0,'ro', label = 'one point')
pylab.legend(loc = "lower …
Run Code Online (Sandbox Code Playgroud)

python matplotlib legend

11
推荐指数
1
解决办法
4290
查看次数

什么是lena.png,为什么用它?

我正在测试/搜索我的图像处理算法的测试,我多次遇到"lena.png".为什么?它是某种标准算法测试图片吗?我想知道图片背后的历史.

我可以使用其他类似的照片吗?为什么?

这是lena.png

testing algorithm image image-processing

10
推荐指数
0
解决办法
5726
查看次数

如何为纯 pgm 格式编写 PIL 图像过滤器?

如何为 pgm 纯 ascii 格式(P2)编写 python 成像库的过滤器。这里的问题是基本的 PIL 过滤器假设每个像素的字节数恒定。

我的目标是用 Image.open() 打开fep.pgm。请参阅http://netpbm.sourceforge.net/doc/pgm.html或以下。

替代解决方案是我找到了 PIL 和所有主要图形程序支持的其他有据可查的 ascii 灰度格式。有什么建议?

费用.pgm:

P2
# feep.pgm
24 7
15
0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0  0
0  3  3  3  3  0  0  7  7  7  7  0  0 11 11 11 11  0  0 15 15 15 15  0
0  3  0  0  0  0 …
Run Code Online (Sandbox Code Playgroud)

python image image-processing python-imaging-library

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

如何从邪恶的程序员那里保护python类变量?

如何保护我的变量免受此类攻击:

MyClass.__dict__ = {}
MyClass.__dict__.__setitem__('_MyClass__protectedVariable','...but it is not')
Run Code Online (Sandbox Code Playgroud)

上面改变了变量字典,之后是孩子们玩改变所有变量.上线对于此工作至关重要.如果您的字典__setitem__被调整如下,则上述方法无效.

我想强制用户使用我的方法setProtectedVariable(value)来更改变量,但我似乎没有办法在Python 2.7中这样做.有任何想法吗?

如果您从下面的代码中找到其他类似的漏洞,我也很感激(我注意到我还应该在我的inspect.stack办理登机手续中添加文件名和行号myDict.__setitem__).

这是我到目前为止所尝试的:

import inspect

class ProtectionTest:

    __myPrivate = 0

    def __init__(self):
        md = myDict()
        setattr(self,'__dict__', md)

    def __setattr__(self, name, val):     
        if name == '__myPrivate':
            print "failed setattr attempt: __myPrivate"
            pass
        elif name == '_ProtectionTest__myPrivate':
            print "failed setattr attempt: _ProtectionTest__myPrivate"  
            pass
        elif name == '__dict__':
            print "failed setattr attempt: __dict__"
            pass
        else: 
            self.__dict__[name] = val             

    def getMyPrivate(self):
        return self.__myPrivate

    def setMyPrivate(self, myPrivate): …
Run Code Online (Sandbox Code Playgroud)

python dictionary private class protected

5
推荐指数
3
解决办法
2794
查看次数

使用python matplotlib时如何更改图中的所有文本大小?

很久以前我看到一个函数,它在 matplotlib 中将所有文本大小更改为相同。现在我在任何地方都找不到。这是一个简单的一(或两个)班轮,如:

for item in pylab.gca(): item.getLabel().setSize(10)
Run Code Online (Sandbox Code Playgroud)

我该怎么做?上面只是伪代码,但想法是改变 x 和 y 标签,图例,标题,一切。

编辑: ...在一个人物(对象)内。我希望文本大小取决于图形宽度。全局 font.size 会为所有数字更改此设置吗?并且我认为它不能动态应用(仅在创建图形之前读取设置)?

编辑 2:我测试了该font.size = 22方法。如果你在例如legend() 之后运行它,它会有一些奇怪的行为。文本垂直空间不会更新。因此,它应该类似于 getText().setTextSize()。

python text resize matplotlib figure

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

实现顺序try-excepts的pythonic方法是什么?

我必须从没有通用逻辑的文件名中解析一些数字.我想使用python的方式"尝试,你将被宽恕",或尝试 - 除了结构.现在我要添加两个以上的案例.这样做的正确方法是什么?我现在想要嵌套尝试或尝试 - 除了传递,尝试 - 除 - 传递,...哪一个会更好还是别的什么?工厂方法也许(如何?)?

这将在未来很容易扩展,因为会有更多的情况.

下面是我想要的(不起作用,因为每次尝试只能存在一个exeption):

try:
    # first try
    imNo = int(imBN.split('S0001')[-1].replace('.tif',''))
except:
    # second try
    imNo = int(imBN.split('S0001')[-1].replace('.tiff',''))
except:
    # final try
    imNo = int(imBN.split('_0_')[-1].replace('.tif',''))
Run Code Online (Sandbox Code Playgroud)

编辑:

哇,谢谢你的回答,但没有模式匹配请.我的坏,在开始时加上"一些共同的逻辑"(现在改为"没有共同的逻辑",对此抱歉).在上面的情况下,模式非常相似......让我添加一些完全不同的东西来说明问题.

except:
    if imBN.find('first') > 0: imNo = 1
    if imBN.find('second') > 0: imNo = 2
    if imBN.find('third') > 0: imNo = 3
    ...
Run Code Online (Sandbox Code Playgroud)

python nested try-catch factory-pattern sequential

4
推荐指数
1
解决办法
722
查看次数

如何强制/ usr/bin/gcc - >/usr/bin/gcc -m32?

我有一个大型捆绑软件发行版的糟糕Makefile.在某些时候,编译器总是"忘记"我想在32位程序中编译.这导致部分程序具有64位库,而其他程序具有32位库.

每次运行gcc时如何强制使用-m32选项?

br,
Juha

PS我的环境混合32/64位(macbook5.1,雪豹).或者:如何使我的系统纯粹为32位或64位?

编辑:强调覆盖全局变量的不良Makefile.这就是为什么我选择了有效的黑客行为.

macos 64-bit gcc 32-bit osx-snow-leopard

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