1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132
|
"""
Demonstrating the examples from pyqtgraph
"""
from atom.api import (Atom, Str, Range, List, Bool)
from enaml.widgets.api import (
Window, Container, DockArea,DockItem,PushButton, CheckBox, RadioButton
)
from enaml.core.looper import Looper
from enaml.widgets.spin_box import SpinBox
import numpy as np
from enamlx.widgets.api import PlotArea,PlotItemArray,PlotItemArray3D
from enaml.layout.dock_layout import VSplitLayout, HSplitLayout
from enamlx.widgets.double_spin_box import DoubleSpinBox
from enaml.widgets.dual_slider import DualSlider
enamldef Main(Window):
minimum_size = (960,640)
Container:
padding = 0
DockArea:
layout = HSplitLayout(
VSplitLayout(
'basic',
'multi',
'range',
), VSplitLayout(
'multi2',
'multi3',
'multi4'
)
#'scatter',
)
DockItem:
name = 'basic'
PlotArea:
PlotItemArray:
title = 'Basic array plotting'
y << np.random.normal(size=100)
label_left = 'Value'
DockItem:
name = 'multi'
title = 'Multiple curves'
PlotArea:
PlotItemArray:
multi_axis = False
label_left = 'A'
line_pen = 'g'
y << np.random.normal(size=100)
PlotItemArray:
line_pen = 'b'
label_right = 'B'
y << np.random.normal(size=100)+10
PlotItemArray:
line_pen = 'r'
label_right = 'C'
y << np.random.normal(size=100)+20
DockItem:
name = 'multi2'
title = 'Multiple curves with axis'
PlotArea:
PlotItemArray:
multi_axis = False
label_left = 'A'
line_pen = 'g'
y << np.random.normal(size=100)
PlotItemArray:
line_pen = 'b'
label_right = 'B'
y << np.random.normal(size=100)+10
PlotItemArray:
line_pen = 'r'
label_right = 'C'
y << np.random.normal(size=100)+20
DockItem:
name = 'multi3'
title = 'Multiple plot'
PlotArea:
PlotItemArray:
row = 1
label_left = 'A'
line_pen = 'g'
y << np.random.normal(size=100)
PlotItemArray:
row = 2 # leave row out to stack however it likes
line_pen = 'b'
label_left = 'B'
y << np.random.normal(size=100)+10
DockItem:
name = 'multi4'
title = 'Multiple plot'
PlotArea:
PlotItemArray:
label_left = 'A'
line_pen = 'g'
y << np.random.normal(size=100)
PlotItemArray:
line_pen = 'b'
label_left = 'B'
y << np.random.normal(size=100)+10
DockItem:
name = 'range'
title = 'View range'
Container:
padding = 0
PlotArea:
PlotItemArray: range_plot:
auto_range = (False,True)
background = 'white'
#range_x << (range_slider.low_value,range_slider.high_value)
#range_x :: range_slider.low_value,range_slider.high_value = map(int,change['value'])
y << np.random.normal(size=100)
DualSlider: range_slider:
minimum = 0
maximum = 100
low_value << int(range_plot.range_x[0])
low_value :: range_plot.range_x[0] = change['value']
high_value << int(range_plot.range_x[1])
high_value :: range_plot.range_x[1] = change['value']
# DockItem:
# name = 'scatter'
# Container:
# PlotItemArray3D: # TODO, does not work
# minimum_size = (360,360)
# x = np.linspace(-10,10,100)
# y = np.linspace(-10,10,51)
# z = np.random.normal(size=100)
|