与这个问题非常相似,但不同之处在于我的身材可以达到需要的大小.
我需要在matplotlib中生成一堆垂直堆叠的图.结果将使用figsave保存并在网页上查看,因此我不关心最终图像的高度,只要子图间隔开,这样它们就不会重叠.
无论我有多大的数字,子图总是似乎重叠.
我的代码目前看起来像
import matplotlib.pyplot as plt
import my_other_module
titles, x_lists, y_lists = my_other_module.get_data()
fig = plt.figure(figsize=(10,60))
for i, y_list in enumerate(y_lists):
plt.subplot(len(titles), 1, i)
plt.xlabel("Some X label")
plt.ylabel("Some Y label")
plt.title(titles[i])
plt.plot(x_lists[i],y_list)
fig.savefig('out.png', dpi=100)
Run Code Online (Sandbox Code Playgroud) 刚刚在Python中遇到了一些奇怪的想法,我想它 会把它写成一个问题,以防万一其他人试图用同样的徒劳无益的搜索条件找到答案我是
看起来像元组解包使得它如果你期望迭代返回值就不能返回长度为1的元组.虽然看起来看起来很欺骗.看到答案.
>>> def returns_list_of_one(a):
... return [a]
...
>>> def returns_tuple_of_one(a):
... return (a)
...
>>> def returns_tuple_of_two(a):
... return (a, a)
...
>>> for n in returns_list_of_one(10):
... print n
...
10
>>> for n in returns_tuple_of_two(10):
... print n
...
10
10
>>> for n in returns_tuple_of_one(10):
... print n
...
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'int' object is not iterable
>>>
Run Code Online (Sandbox Code Playgroud) 我有一个函数foo(i),它接受一个整数并花费大量的时间来执行.会不会有任何的初始化通过以下方式之间的显著性能差异一:
a = [foo(i) for i in xrange(100)]
a = map(foo, range(100))
vfoo = numpy.vectorize(foo)
a = vfoo(range(100))
Run Code Online (Sandbox Code Playgroud)
(我不关心输出是列表还是numpy数组.)
有没有更好的办法?
我想从至少1亿个数字列表中获取最大的100个元素.
我可以对整个列表进行排序,并从排序列表中获取最后100个元素,但就内存和时间而言,这将是非常昂贵的.
有没有现成的简单,pythonic方式这样做?
我想要的是跟随功能而不是纯粹的排序.其实我不想浪费时间来分类我不在乎的元素.
例如,这是我想要的功能:
getSortedElements(100, lambda x,y:cmp(x,y))
Run Code Online (Sandbox Code Playgroud)
请注意,此要求仅适用于性能视角.
我在使用这段代码时遇到了一些麻烦
#data_list = some data
wb = xlwt.Workbook()
s = wb.add_sheet("Test Sheet")
for c, data in enumerate(data_list):
xf=None
if isinstance(data, datetime.time):
xf = xlwt.easyxf(num_format_str='HH:MM:SS') #works
elif isinstance(data, datetime.date):
xf = xlwt.easyxf(num_format_str='MM/DD/YYYY') #doesn't work
if xf:
sheet.write(r+1,c,data, xf)
else:
sheet.write(r+1,c,data)
Run Code Online (Sandbox Code Playgroud)
在输出中,日期最初都显示为"#####".通过与每列中的单元格进行交互,我可以很好地格式化它们,但这很耗时.我尝试使用num_format_str一点点,但到目前为止没有运气.
python ×5
function ×1
matplotlib ×1
max ×1
minimum ×1
numpy ×1
performance ×1
return-value ×1
sorting ×1
xlwt ×1