gpt4 book ai didi

Python+Chaco+Traits - 渲染错误: unexpected fills of line plot of large data?

转载 作者:太空宇宙 更新时间:2023-11-04 01:22:25 24 4
gpt4 key购买 nike

使用下面的最小示例,我得到的大图(大约 110k 点)的线图(使用 python 2.7、numpy 1.5.1、chaco/enable/traits 4.3.0)是这样的:

chaco01

然而,这很奇怪,因为它是一个线图,里面不应该有任何填充区域吗?特别是因为数据是锯齿状信号?好像在y~=37XX处有一条线,上面有颜色填充?!但可以肯定的是,如果我放大一个区域,我会得到我期望的渲染 - 没有意外的填充:

chaco02

这是错误 - 还是我做错了什么?我尝试使用 use_downsampling,但没有任何区别...

测试代码:

import numpy as np
import numpy.random as npr
from pprint import pprint
from traits.api import HasTraits, Instance
from chaco.api import Plot, ArrayPlotData, VPlotContainer
from traitsui.api import View, Item
from enable.component_editor import ComponentEditor
from chaco.tools.api import PanTool, BetterSelectingZoom

tlen = 112607
alr = npr.randint(0, 4000, tlen)
tx = np.arange(0.0, 30.0-0.00001, 30.0/tlen)
ty = np.arange(0, tlen, 1) % 10000 + alr
pprint(len(ty))


class ChacoTest(HasTraits):

container = Instance(VPlotContainer)
traits_view = View(
Item('container', editor=ComponentEditor(), show_label=False),
width=800, height=500, resizable=True,
title="Chaco Test"
)

def __init__(self):
super(ChacoTest, self).__init__()
pprint(ty)
self.plotdata = ArrayPlotData(x = tx, y = ty)
self.plotobj = Plot(self.plotdata)
self.plotA = self.plotobj.plot(("x", "y"), type="line", color=(0,0.99,0), spacing=0, padding=0, alpha=0.7, use_downsampling=True)
self.container = VPlotContainer(self.plotobj, spacing=5, padding=5, bgcolor="lightgray")
#~ container.add(plot)
self.plotobj.tools.append(PanTool(self.plotobj))
self.plotobj.overlays.append(BetterSelectingZoom(self.plotobj))

if __name__ == "__main__":
ChacoTest().configure_traits()

最佳答案

我能够重现错误并与 John Wiggins(Enable 的维护者)交谈,这是 kiva 中的一个错误(chaco 用来在屏幕上绘制): https://github.com/enthought/enable好消息是,这是您可以使用的 kiva 后端之一中的错误。因此,要解决此问题,您可以选择不同的后端来运行脚本:

ETS_TOOLKIT=qt4.qpainter python <NAME OF YOUR SCRIPT>

如果您使用 qpainter 或 quartz,绘图看起来(在我的机器上)符合预期。如果您选择 qt4.image(Agg 后端),您将重现该问题。不幸的是,Agg 后端是默认后端。要更改它,您可以将 ETS_TOOLKIT 环境变量设置为该值:

export ETS_TOOLKIT=qt4.qpainter

坏消息是解决这个问题并不是一件容易的事。如果您想参与其中,请随时在 github 中报告错误(再次 https://github.com/enthought/enable)。如果你不这样做,我将在接下来的几天内记录下来。感谢您报告!

关于Python+Chaco+Traits - 渲染错误: unexpected fills of line plot of large data?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20367093/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com