这听起来是个简单的问题,但我发现,要想取得好的成绩是非常棘手的。
我提出的第一个算法是随机绘制点,从一个集合中检查是否已经绘制,否则就画出来。这很好,如果我们画了几个点,但在我们接近填充屏幕时减缓了灾难性的速度。
我想出的最佳方法是构造像素列表,对其进行洗牌并选择第一个n(我使用了python的random.sample )。它工作更好,但仍然有点慢,因为整个像素列表需要在内存中构造,这在绘制5分时非常过分。下面是我的python代码:
#!/usr/bin/env python
""" drawn n random points on the screen "
我应该如何进行,以便能够绘制出一些来自一个大的pytable (17 in )的数据。
如果我试图存储所需的值,就会得到Memory Error,如下所示:
for row in tab.iterrows():
x.append(row['date'])
y.append(row['temperature'])
#this will not end, raises Memory Error
如果我尝试使用数据更新一个小区,而不存储任何值,我会得到以下消息:
MemoryError
QImage: out of memory, retu
我正在使用vline在Python中绘制一些垂直线:
for i in range(100):
plt.vlines(xvalues[i],0,20,linestyles='-',colors='r')
但理想的情况是,我想定制这条线路的样式。我见过如何定制,但我不知道如何将它应用到vline示例中。
谢谢你的帮助。
当我这样做时,它会绘制(在Python 3中):
import matplotlib.pyplot as plt
a = [1,2,3,4,5]
plt.plot(range(5), a)
plt.show()
据我所知,在Python3中,range()返回一个迭代器,所以我上面的代码几乎都是在迭代器上绘制的。现在我的问题是,为什么我不能:
def myGen(iterable):
for i in iterable:
yield i
a = myGen([1,2,3,4,5])
plt.plot(range(5),a)
plt.show()
当我尝试这个的时候,