我想对绘图中的几个选定的刻度标签进行一些修改.
例如,如果我这样做:
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的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) 假设我想匹配一个小写字母后跟一个大写字母,我可以做类似的事情
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)
但这不起作用.
有线索吗?
4-5年我需要一个具有以下属性的小部件
应该在布局中使用此子部件,以提供有关布局中其他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) 我使用顶点和片段着色器对来绘制圆柱冒名者以进行分子可视化。着色器在屏幕上渲染 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)
最快的方法是什么?上述问题的替代解决方案非常受欢迎。
此致,
麦兹