小编rep*_*man的帖子

修改刻度标签文本

我想对绘图中的几个选定的刻度标签进行一些修改.

例如,如果我这样做:

label = axes.yaxis.get_major_ticks()[2].label
label.set_fontsize(size)
label.set_rotation('vertical')
Run Code Online (Sandbox Code Playgroud)

更改刻度标签的字体大小和方向.

但是,如果尝试:

label.set_text('Foo')
Run Code Online (Sandbox Code Playgroud)

刻度标签未被修改.如果我这样做:

print label.get_text()
Run Code Online (Sandbox Code Playgroud)

没有打印.

这里有些陌生.当我尝试这个时:

 from pylab import *
 axes = figure().add_subplot(111)
 t = arange(0.0, 2.0, 0.01)
 s = sin(2*pi*t)
 axes.plot(t, s)
 for ticklabel in axes.get_xticklabels():
     print ticklabel.get_text()
Run Code Online (Sandbox Code Playgroud)

仅打印空字符串,但该图包含标记为"0.0","0.5","1.0","1.5"和"2.0"的刻度线.

python matplotlib

182
推荐指数
8
解决办法
34万
查看次数

Python itertools - 慢?

我试图使用Python的itertools模块来加速三重嵌套for循环.下面的测试代码将标准的三重嵌套循环与itertools的产品方法和输出进行比较:

嵌套循环时间= 2.35023秒

Itertools循环时间= 2.67766秒

我错过了什么吗?

import numpy
import itertools
import time

n = 128
a = numpy.arange(n**3).reshape((n,n,n))
b = numpy.zeros((n,n,n))
c = numpy.zeros((n,n,n))

t = time.time()
for i in range(n):
    for j in range(n):
        for k in range(n):
            b[i,j,k] = a[i,j,k]
print 'Nested loop time = %g secs' % (time.time() - t)

t = time.time()
for (i,j,k) in itertools.product(range(n), repeat=3):
    c[i,j,k] = a[i,j,k]
print 'Itertools loop time = %g secs' % (time.time() - t)
Run Code Online (Sandbox Code Playgroud)

python loops

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

在Python中使用正则表达式匹配区分大小写的unicode字符串

假设我想匹配一个小写字母后跟一个大写字母,我可以做类似的事情

re.compile(r"[a-z][A-Z]")
Run Code Online (Sandbox Code Playgroud)

现在我想对unicode字符串做同样的事情,即匹配'aÅ'或'yÜ'之类的东西.

试着

re.compile(r"[a-z][A-Z]", re.UNICODE)
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

有线索吗?

python regex unicode case-insensitive character-properties

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

heightForWidth标签

4-5年我需要一个具有以下属性的小部件

  • 显示文字,包括 的HTML
  • 文字应换行
  • 将小部件放置在布局中时,应以使其文本完全适合小部件几何形状的方式调整小部件的高度

应该在布局中使用此子部件,以提供有关布局中其他GUI元素如何工作的一些详细信息,但仅占用最小的空间来显示其内容。

我以为这很容易-但是每次回到挑战时,我总是以放弃而告终。

主要问题是,当实现heightForWidth()并使用带有setHeightForWidth(True)的QSizePolicy时,布局会崩溃。它可以缩小到无限小。显然,这是Qt的错误。

另一种方法是在发生resizeEvent()时调用updateGeometry()并使用与宽度相关的高度来调用setFixedHeight(h)。但是,这也会引起一些奇怪的布局行为。

如果有人对如何解决此问题有任何好的建议,请告诉我。

下面,我包含一个片段,它再现了布局调整大小的行为。

最好的祝福,

狂人

import sys
from PyQt4 import QtCore, QtGui

class Square(QtGui.QLabel):
    def __init__(self, parent=None):
        QtGui.QLabel.__init__(self, parent)
        self.setAutoFillBackground(True)

        palette = QtGui.QPalette()
        palette.setColor(QtGui.QPalette.Window, QtGui.QColor('red'))
        self.setPalette(palette)

        policy = self.sizePolicy()
        policy.setHeightForWidth(True)
        self.setSizePolicy(policy)

    def sizeHint(self):
        return QtCore.QSize(128, 128)

    def heightForWidth(self, width):
        return width

class Widget(QtGui.QWidget):
    def __init__(self, parent=None):
        # Call base class constructor
        QtGui.QWidget.__init__(self, parent)

        # Add a layout
        layout = QtGui.QVBoxLayout()
        self.setLayout(layout)

        # Add Square
        label = Square()
        layout.addWidget(label)

        spacerItem = QtGui.QSpacerItem(20, 40, …
Run Code Online (Sandbox Code Playgroud)

qt pyqt

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

GLSL:确定向量是否不为零

我使用顶点和片段着色器对来绘制圆柱冒名者以进行分子可视化。着色器在屏幕上渲染 500.000 个圆柱体(键)。显然,着色器优化是一个问题。

对于每个渲染的圆柱体,我必须确定某些 vec3(例如 u)是否不是零向量。我可能会这样做:

dot(u,u) != 0.0

(u.x != 0.0) || (u.y != 0.0) || (u.z != 0.0)

any(notEqual(u, vec3(0.0, 0.0, 0.0)))
Run Code Online (Sandbox Code Playgroud)

最快的方法是什么?上述问题的替代解决方案非常受欢迎。

此致,

麦兹

glsl

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