本文整理汇总了Python中glue.core.data_collection.DataCollection类的典型用法代码示例。如果您正苦于以下问题:Python DataCollection类的具体用法?Python DataCollection怎么用?Python DataCollection使用的例子?那么恭喜您, 这里精选的类代码示例或许可以为您提供帮助。
在下文中一共展示了DataCollection类的13个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: load_data_files
def load_data_files(datafiles):
"""Load data files and return a DataCollection"""
from glue.core.data_collection import DataCollection
from glue.core.data_factories import auto_data, load_data
dc = DataCollection()
for df in datafiles:
dc.append(load_data(df, auto_data))
return dc
示例2: test_links
def test_links(self):
d1 = Data(label='x', x=[1, 2, 3])
d2 = Data(label='y', y=[3, 4, 8])
dc = DataCollection([d1, d2])
link = ComponentLink([d1.id['x']], d2.id['y'], doubler)
dc.add_link(link)
np.testing.assert_array_equal(d1['y'], [2, 4, 6])
app = GlueApplication(dc)
self.check_clone(app)
示例3: test_subset_groups_remain_synced_after_restore
def test_subset_groups_remain_synced_after_restore(self):
# regrssion test for 352
d = Data(label='hist', x=[[1, 2], [2, 3]])
dc = DataCollection([d])
dc.new_subset_group()
app = GlueApplication(dc)
app2 = clone(app)
sg = app2.data_collection.subset_groups[0]
assert sg.style.parent is sg
sg.style.color = '#112233'
assert sg.subsets[0].style.color == '#112233'
示例4: test_histogram
def test_histogram(self):
d = Data(label='hist', x=[[1, 2], [2, 3]])
dc = DataCollection([d])
app = GlueApplication(dc)
w = app.new_data_viewer(HistogramViewer, data=d)
self.check_clone(app)
dc.new_subset_group()
assert len(w.layers) == 2
self.check_clone(app)
w.nbins = 7
self.check_clone(app)
示例5: test_scatter_viewer
def test_scatter_viewer(self):
d = Data(label='x', x=[1, 2, 3, 4, 5], y=[2, 3, 4, 5, 6])
dc = DataCollection([d])
app = GlueApplication(dc)
w = app.new_data_viewer(ScatterViewer, data=d)
self.check_clone(app)
s1 = dc.new_subset_group()
s2 = dc.new_subset_group()
assert len(w.layers) == 3
l1, l2, l3 = w.layers
l1.zorder, l2.zorder = l2.zorder, l1.zorder
l3.visible = False
assert l3.visible is False
copy = self.check_clone(app)
assert copy.viewers[0][0].layers[-1].visible is False
示例6: setup_method
def setup_method(self, method):
self.data = Data(x=[1, 2, 3, 2, 2, 3, 1])
figure = MagicMock()
self.collect = DataCollection()
self.client = HistogramClient(self.collect, figure)
self.axes = self.client.axes
self.hub = self.collect.hub
self.connect()
示例7: setup_method
def setup_method(self, method):
self.data = example_data.test_data()
self.ids = [self.data[0].find_component_id('a'),
self.data[0].find_component_id('b'),
self.data[1].find_component_id('c'),
self.data[1].find_component_id('d')]
self.roi_limits = (0.5, 0.5, 1.5, 1.5)
self.roi_points = (np.array([1]), np.array([1]))
self.collect = DataCollection()
EditSubsetMode().data_collection = self.collect
self.hub = self.collect.hub
FIGURE.clf()
axes = FIGURE.add_subplot(111)
self.client = ScatterClient(self.collect, axes=axes)
self.connect()
示例8: ParsedCommand
data.hub.broadcast(msg)
else:
pc = ParsedCommand(self._state[data][cid_new]['equation']._cmd, components)
link = ParsedComponentLink(cid_new, pc)
data.add_component_link(link)
# Findally, reorder components as needed
data.reorder_components(cids_all)
super(ArithmeticEditorWidget, self).accept()
if __name__ == "__main__": # pragma: nocover
from glue.utils.qt import get_qapp
app = get_qapp()
import numpy as np
from glue.core.data import Data
from glue.core.data_collection import DataCollection
x = np.random.random((5, 5))
y = x * 3
dc = DataCollection()
dc.append(Data(label='test1', x=x, y=y))
dc.append(Data(label='test2', a=x, b=y))
widget = ArithmeticEditorWidget(dc)
widget.exec_()
示例9: TestCommunication
class TestCommunication(object):
def setup_method(self, method):
self.data = Data(x=[1, 2, 3, 2, 2, 3, 1])
figure = MagicMock()
self.collect = DataCollection()
self.client = HistogramClient(self.collect, figure)
self.axes = self.client.axes
self.hub = self.collect.hub
self.connect()
def draw_count(self):
return self.axes.figure.canvas.draw.call_count
def connect(self):
self.client.register_to_hub(self.hub)
self.collect.register_to_hub(self.hub)
def test_ignore_data_add_message(self):
self.collect.append(self.data)
assert not (self.client.layer_present(self.data))
def test_update_data_ignored_if_data_not_present(self):
self.collect.append(self.data)
ct0 = self.draw_count()
self.data.style.color = 'blue'
assert self.draw_count() == ct0
def test_update_data_processed_if_data_present(self):
self.collect.append(self.data)
self.client.add_layer(self.data)
ct0 = self.draw_count()
self.data.style.color = 'blue'
assert self.draw_count() > ct0
def test_add_subset_ignored_if_data_not_present(self):
self.collect.append(self.data)
sub = self.data.new_subset()
assert not (self.client.layer_present(sub))
def test_add_subset_processed_if_data_present(self):
self.collect.append(self.data)
self.client.add_layer(self.data)
sub = self.data.new_subset()
assert (self.client.layer_present(sub))
def test_update_subset_ignored_if_not_present(self):
self.collect.append(self.data)
self.client.add_layer(self.data)
sub = self.data.new_subset()
self.client.remove_layer(sub)
ct0 = self.draw_count()
sub.style.color = 'blue'
assert self.draw_count() == ct0
def test_update_subset_processed_if_present(self):
self.collect.append(self.data)
self.client.add_layer(self.data)
sub = self.data.new_subset()
ct0 = self.draw_count()
sub.style.color = 'blue'
assert self.draw_count() > ct0
def test_data_remove_message(self):
self.collect.append(self.data)
self.client.add_layer(self.data)
self.collect.remove(self.data)
assert not self.client.layer_present(self.data)
def test_subset_remove_message(self):
self.collect.append(self.data)
self.client.add_layer(self.data)
sub = self.data.new_subset()
assert self.client.layer_present(sub)
sub.delete()
assert not self.client.layer_present(sub)
示例10: TestCategoricalHistogram
class TestCategoricalHistogram(TestHistogramClient):
def setup_method(self, method):
self.data = Data(y=[-1, -1, -1, -2, -2, -2, -3, -5, -7])
self.data.add_component(CategoricalComponent(['a', 'a', 'a', 'b', 'c', 'd', 'd', 'e', 'f']), 'x')
self.subset = self.data.new_subset()
self.collect = DataCollection(self.data)
self.client = HistogramClient(self.collect, FIGURE)
self.axes = self.client.axes
FIGURE.canvas.draw = MagicMock()
assert FIGURE.canvas.draw.call_count == 0
def test_xlimit_single_set(self):
self.client.add_layer(self.data)
self.client.set_component(self.data.id['x'])
self.client.xlimits = (None, 5)
assert self.client.xlimits == (-0.5, 5)
self.client.xlimits = (3, None)
assert self.client.xlimits == (3, 5)
def test_default_xlimits(self):
self.client.add_layer(self.data)
self.client.set_component(self.data.id['x'])
assert self.client.xlimits == (-0.5, 5.5)
self.client.set_component(self.data.id['y'])
assert self.client.xlimits == (-7, -1)
def test_change_default_bins(self):
self.client.add_layer(self.data)
self.client.set_component(self.data.id['x'])
assert self.client.nbins == 6
def test_tick_labels(self):
self.client.add_layer(self.data)
self.client.set_component(self.data.id['x'])
correct_labels = ['a', 'b', 'c', 'd', 'e', 'f']
formatter = self.client.axes.xaxis.get_major_formatter()
xlabels = [formatter.format_data(pos) for pos in range(6)]
assert correct_labels == xlabels
def test_apply_roi(self):
self.client.add_layer(self.data)
self.client.set_component(self.data.id['x'])
# bins are 1...4
self.data.edit_subset = [self.data.subsets[0]]
roi = MagicMock()
roi.to_polygon.return_value = [1.2, 2, 4], [2, 3, 4]
self.client.apply_roi(roi)
state = self.data.subsets[0].subset_state
assert isinstance(state, CategoricalROISubsetState)
np.testing.assert_equal(self.data.subsets[0].subset_state.roi.categories,
np.array(['b', 'c', 'd', 'e']))
# REMOVED TESTS
def test_xlog_axes_labels(self):
""" log-scale doesn't make sense for categorical data"""
pass
def test_xlog_snaps_limits(self):
""" log-scale doesn't make sense for categorical data"""
pass
def test_apply_roi_xlog(self):
""" log-scale doesn't make sense for categorical data"""
pass
def test_nbin_override_persists_over_attribute_change(self):
# regression test for #398
self.collect.append(self.data)
self.client.add_layer(self.data)
self.client.set_component(self.data.id['x'])
self.client.nbins = 7
self.client.set_component(self.data.id['y'])
assert self.client.nbins == 7
示例11: TestHistogramClient
class TestHistogramClient(object):
def setup_method(self, method):
self.data = Data(x=[0, 0, 0, 1, 2, 3, 3, 10, 20],
y=[-1, -1, -1, -2, -2, -2, -3, -5, -7])
self.subset = self.data.new_subset()
self.collect = DataCollection(self.data)
self.client = HistogramClient(self.collect, FIGURE)
self.axes = self.client.axes
FIGURE.canvas.draw = MagicMock()
assert FIGURE.canvas.draw.call_count == 0
def draw_count(self):
return self.axes.figure.canvas.draw.call_count
def layer_drawn(self, layer):
return layer in self.client._artists and \
all(a.visible for a in self.client._artists[layer]) and \
all(len(a.artists) > 0 for a in self.client._artists[layer])
def layer_present(self, layer):
return layer in self.client._artists
def assert_autoscaled(self):
yra = self.client.axes.get_ylim()
datara = [99999, -99999]
for a in self.client._artists:
if a.y.size > 0:
datara[0] = min(datara[0], a.y.min())
datara[1] = max(datara[1], a.y.max())
assert yra[0] <= datara[0]
assert yra[1] >= datara[1]
def test_empty_on_creation(self):
assert self.data not in self.client._artists
def test_add_layer(self):
self.client.add_layer(self.data)
assert self.layer_present(self.data)
assert not self.layer_drawn(self.data)
self.client.set_component(self.data.components[0])
assert self.layer_drawn(self.data)
def test_add_invalid_layer_raises(self):
self.collect.remove(self.data)
with pytest.raises(IncompatibleDataException):
self.client.add_layer(self.data)
def test_add_subset_auto_adds_data(self):
subset = self.data.new_subset()
self.client.add_layer(subset)
assert self.layer_present(self.data)
assert self.layer_present(subset)
self.client.set_component(self.data.components[0])
assert self.layer_drawn(self.data)
def test_double_add_ignored(self):
self.client.add_layer(self.data)
art = self.client._artists[self.data]
self.client.add_layer(self.data)
assert self.client._artists[self.data] == art
def test_add_data_auto_adds_subsets(self):
s = self.data.new_subset()
self.client.add_layer(self.data)
assert self.layer_present(s)
def test_data_removal(self):
self.client.add_layer(self.data)
self.client.remove_layer(self.data)
assert not (self.layer_present(self.data))
def test_data_removal_removes_subsets(self):
self.client.add_layer(self.data)
self.client.remove_layer(self.data)
self.data.new_subset()
assert len(self.data.subsets) > 0
for subset in self.data.subsets:
assert not (self.layer_present(subset))
def test_layer_updates_on_data_add(self):
self.client.add_layer(self.data)
for s in self.data.subsets:
assert s in self.client._artists
def test_set_component_updates_component(self):
self.client.add_layer(self.data)
comp = self.data.find_component_id('uniform')
self.client.set_component(comp)
assert self.client._component is comp
def test_set_component_redraws(self):
self.client.add_layer(self.data)
comp = self.data.id['x']
comp2 = self.data.id['y']
self.client.set_component(comp)
#.........这里部分代码省略.........
示例12: TestScatterClient
class TestScatterClient(object):
def setup_method(self, method):
self.data = example_data.test_data()
self.ids = [self.data[0].find_component_id('a'),
self.data[0].find_component_id('b'),
self.data[1].find_component_id('c'),
self.data[1].find_component_id('d')]
self.roi_limits = (0.5, 0.5, 1.5, 1.5)
self.roi_points = (np.array([1]), np.array([1]))
self.collect = DataCollection()
EditSubsetMode().data_collection = self.collect
self.hub = self.collect.hub
FIGURE.clf()
axes = FIGURE.add_subplot(111)
self.client = ScatterClient(self.collect, axes=axes)
self.connect()
def teardown_method(self, methdod):
self.assert_properties_correct()
self.assert_axes_ticks_correct()
def assert_properties_correct(self):
ax = self.client.axes
cl = self.client
xlim = ax.get_xlim()
ylim = ax.get_ylim()
assert abs(cl.xmin - min(xlim)) < 1e-2
assert abs(cl.xmax - max(xlim)) < 1e-2
assert abs(cl.ymin - min(ylim)) < 1e-2
assert abs(cl.ymax - max(ylim)) < 1e-2
assert cl.xflip == (xlim[1] < xlim[0])
assert cl.yflip == (ylim[1] < ylim[0])
assert cl.xlog == (ax.get_xscale() == 'log')
assert cl.ylog == (ax.get_yscale() == 'log')
assert (self.client.xatt is None) or isinstance(
self.client.xatt, ComponentID)
assert (self.client.yatt is None) or isinstance(
self.client.yatt, ComponentID)
def check_ticks(self, axis, is_log, is_cat):
locator = axis.get_major_locator()
formatter = axis.get_major_formatter()
if is_log:
assert isinstance(locator, LogLocator)
assert isinstance(formatter, LogFormatterMathtext)
elif is_cat:
assert isinstance(locator, MaxNLocator)
assert isinstance(formatter, FuncFormatter)
else:
assert isinstance(locator, AutoLocator)
assert isinstance(formatter, ScalarFormatter)
def assert_axes_ticks_correct(self):
ax = self.client.axes
client = self.client
if client.xatt is not None:
self.check_ticks(ax.xaxis,
client.xlog,
client._check_categorical(client.xatt))
if client.yatt is not None:
self.check_ticks(ax.yaxis,
client.ylog,
client._check_categorical(client.yatt))
def plot_data(self, layer):
""" Return the data bounds for a given layer (data or subset)
Output format: [xmin, xmax], [ymin, ymax]
"""
client = self.client
x, y = client.artists[layer][0].get_data()
xmin = x.min()
xmax = x.max()
ymin = y.min()
ymax = y.max()
return [xmin, xmax], [ymin, ymax]
def plot_limits(self):
""" Return the plot limits
Output format [xmin, xmax], [ymin, ymax]
"""
ax = self.client.axes
xlim = ax.get_xlim()
ylim = ax.get_ylim()
return (min(xlim), max(xlim)), (min(ylim), max(ylim))
def assert_layer_inside_limits(self, layer):
"""Assert that points of a layer are within plot limits """
xydata = self.plot_data(layer)
xylimits = self.plot_limits()
assert xydata[0][0] >= xylimits[0][0]
assert xydata[1][0] >= xylimits[1][0]
assert xydata[0][1] <= xylimits[0][1]
assert xydata[1][1] <= xylimits[1][1]
def setup_2d_data(self):
d = Data(x=[[1, 2], [3, 4]], y=[[2, 4], [6, 8]])
#.........这里部分代码省略.........
示例13: receive_message
hub.subscribe(self, # subscribing object
DataMessage, # message type to subscribe to
handler = self.receive_message) # method to call
def receive_message(self, message):
""" Receives each DataMessage relay """
print " MyClient received a message \n"
# create objects
hub = Hub()
client = MyClient()
data = Data()
subset = data.new_subset()
data_collection = DataCollection()
# connect them to each other
data_collection.append(data)
data_collection.register_to_hub(hub)
client.register_to_hub(hub)
# manually send a DataMessage. Relayed to MyClient
print 'Manually sending DataMessage'
message = DataMessage(data)
hub.broadcast(message)
#modify the data object. Automatically generates a DataMessage
print 'Automatically triggering DataMessage'
data.label = "New label"