小编bay*_*yer的帖子

Matplotlib:图例显示不正确

我有不同类的数据点,我想要可视化.这是我得到的图像:http://imgur.com/1x97h

有10个类的3000个数据点,每个300个.它们在一个数组中连接在一起,d迭代我的迭代.标签在labels.中给出.

pylab.clf()
colors = (i + j for j in 'o<.' for i in 'bgrcmyk')
for l, c  in zip(labels, colors):
  start, stop = i * 300, (i + 1) * 300
  pylab.plot(d[0, start:stop], d[1, start:stop], c, label=l)

pylab.legend(loc='lower left')
pylab.show()
Run Code Online (Sandbox Code Playgroud)

有谁知道为什么我的传说搞砸了?

matplotlib

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

不能用kwargs挑选新款式吗?

在我的类实例化期间,我初始化一些不可选择的字段.因此,为了能够(un)正确地挑选我的类,我希望我的init方法可以在unpickling上调用.这似乎是它与旧式课程一起使用的方式.

对于新的样式类,我需要使用__new____getnewargs__.这是我做的:

import cPickle


class Blubb(object):

  def __init__(self, value):
    self.value = value


class Bla(Blubb):

  def __new__(cls, value):
    instance = super(Bla, cls).__new__(cls)
    instance.__init__(value)
    return instance

  def __getnewargs__(self):
    return self.value,

  def __getstate__(self):
    return {}

  def __setstate__(self, dct):
    pass

x = Bla(2)
print x.value
pickled = cPickle.dumps(x, 2)
x_ = cPickle.loads(pickled)
assert x_.value == 2
Run Code Online (Sandbox Code Playgroud)

如果不是这样的话,那就没问题了obj = C.__new__(C, *args).现在有**kwargs.所以我在我__new____init__方法中仅限于非关键字参数.

有谁知道解决这个问题的方法?这真的很不方便.

python pickle

3
推荐指数
1
解决办法
2053
查看次数

标签 统计

matplotlib ×1

pickle ×1

python ×1