vispy visual.HistogramVisual - PullRequest
       26

vispy visual.HistogramVisual

6 голосов
/ 02 мая 2020

Исходя из примеров / basics / visuals / graphy.py, я попытался отобразить гистограмму, но потерпел неудачу:

from vispy import app, visuals
import wx
import numpy as np

class snrHistogram(app.Canvas):
    def __init__(self, *args, **kwargs):
        app.Canvas.__init__(self, title='histogram fail',
                            keys="interactive", size=(600, 600))

        self.snr_hist = visuals.HistogramVisual(np.arange(256), bins=4, color='r', orientation='v')
        self.label = visuals.TextVisual("hi", color='blue', pos=[50, 50, 0])
        self.configure_transforms()
        self.show()

    def configure_transforms(self):
        vp = (0, 0, self.physical_size[0], self.physical_size[1])
        self.context.set_viewport(*vp)
        self.label.transforms.configure(canvas=self, viewport=vp)
        self.snr_hist.transforms.configure(canvas=self, viewport=vp)

    def on_resize(self, event):
        self.configure_transforms()

    def on_mouse_wheel(self, event):
        self.update()

    def on_draw(self, event):
        self.snr_hist.draw()
        self.label.draw()
        self.update()

    def on_close(self, event):
        self.close()

if __name__ == '__main__':
    s = snrHistogram()
    app.run()

, и все же текстовая визуализация работает просто отлично. Я понимаю, что histogramVisual является моим подклассом sh, но я не увидел ничего полезного в исходном коде моего sh .py. Я использую wx в качестве бэкэнда.

1 Ответ

4 голосов
/ 04 мая 2020

Гистограмма появлялась, но очень маленькая. Следующие входные данные приведут программу к отображению гистограммы:

self.snr_hist = visuals.HistogramVisual(
    np.repeat([0, 1, 1, 20, 20, 40, 40, 80, 80, 90, 81, 70, 65],
    100), bins=4, color='r', orientation='h')
...