Secure your code as it's written. Use Snyk Code to scan source code in minutes - no build needed - and fix issues immediately.
def test_xarray_override_dims(self):
xs = [0.1, 0.2, 0.3]
ys = [0, 1]
zs = np.array([[0, 1], [2, 3], [4, 5]])
da = xr.DataArray(zs, coords=[('x_dim', xs), ('y_dim', ys)], name="data_name", dims=['y_dim', 'x_dim'])
da.attrs['long_name'] = "data long name"
da.attrs['units'] = "array_unit"
da.x_dim.attrs['units'] = "x_unit"
da.y_dim.attrs['long_name'] = "y axis long name"
ds = Dataset(da, kdims=["x_dim", "y_dim"], vdims=["z_dim"])
x_dim = Dimension("x_dim")
y_dim = Dimension("y_dim")
z_dim = Dimension("z_dim")
self.assertEqual(ds.kdims[0], x_dim)
self.assertEqual(ds.kdims[1], y_dim)
self.assertEqual(ds.vdims[0], z_dim)
ds_from_ds = Dataset(da.to_dataset(), kdims=["x_dim", "y_dim"], vdims=["data_name"])
self.assertEqual(ds_from_ds.kdims[0], x_dim)
self.assertEqual(ds_from_ds.kdims[1], y_dim)
data_dim = Dimension("data_name")
self.assertEqual(ds_from_ds.vdims[0], data_dim)
def test_dataset_extract_no_kdims_extract_only_vdims(self):
df = pd.DataFrame({'x': [1, 2, 3], 'y': [1, 2, 3], 'z': [1, 2, 3]},
columns=['x', 'y', 'z'])
ds = Dataset(df, kdims=[])
self.assertEqual(ds.kdims, [])
self.assertEqual(ds.vdims, [Dimension('x'), Dimension('y'), Dimension('z')])
def test_bivariate_dict_constructor(self):
dist = Bivariate({'x': [0, 1, 2], 'y': [0, 1, 2]}, ['x', 'y'])
self.assertEqual(dist.kdims, [Dimension('x'), Dimension('y')])
self.assertEqual(dist.vdims, [Dimension('Density')])
def test_bivariate_dict_constructor(self):
dist = Bivariate({'x': [0, 1, 2], 'y': [0, 1, 2]}, ['x', 'y'])
self.assertEqual(dist.kdims, [Dimension('x'), Dimension('y')])
self.assertEqual(dist.vdims, [Dimension('Density')])
def test_bivariate_array_constructor(self):
dist = Bivariate(np.array([[0, 1, 2], [0, 1, 2]]))
self.assertEqual(dist.kdims, [Dimension('x'), Dimension('y')])
self.assertEqual(dist.vdims, [Dimension('Density')])
def test_bivariate_dframe_constructor(self):
if pd is None:
raise SkipTest("Test requires pandas, skipping.")
dist = Bivariate(pd.DataFrame({'x': [0, 1, 2], 'y': [0, 1, 2]}, columns=['x', 'y']))
self.assertEqual(dist.kdims, [Dimension('x'), Dimension('y')])
self.assertEqual(dist.vdims, [Dimension('Density')])
def test_distribution_dframe_constructor(self):
if pd is None:
raise SkipTest("Test requires pandas, skipping.")
dist = Distribution(pd.DataFrame({'Value': [0, 1, 2]}))
self.assertEqual(dist.kdims, [Dimension('Value')])
self.assertEqual(dist.vdims, [Dimension('Density')])
if kdims:
coords = []
for kd in kdims:
coord = data.coords(kd.name)
if len(coord) == 0:
raise ValueError('Key dimension %s not found in '
'Iris cube.' % kd)
coords.append(kd if isinstance(kd, Dimension) else coord[0])
else:
coords = data.dim_coords
coords = sorted(coords, key=sort_coords)
kdims = [crd if isinstance(crd, Dimension) else coord_to_dimension(crd)
for crd in coords]
if vdims is None:
vdims = [Dimension(data.name(), unit=str(data.units))]
return data, {'kdims':kdims, 'vdims':vdims}, {}
def __init__(self, data, kdims=None, vdims=None, **params):
if isinstance(data, Element):
params.update(get_param_values(data))
kdims = kdims or data.dimensions()[:len(self.kdims)]
data = tuple(data.dimension_values(d) for d in kdims)
params.update(dict(kdims=kdims, vdims=[], _validate_vdims=False))
super(StatisticsElement, self).__init__(data, **params)
if not vdims:
self.vdims = [Dimension('Density')]
elif len(vdims) > 1:
raise ValueError("%s expects at most one vdim." %
type(self).__name__)
else:
self.vdims = process_dimensions(None, vdims)['vdims']
'segment_2': seg_map, 'segment_3': seg_map, 'segment_4': seg_map,
'circle_1': out_map
}
# Cast data to arrays to take advantage of base64 encoding
for gdata in [r1_data, r2_data, s1_data, s2_data, out_data]:
for k, values in gdata.items():
gdata[k] = np.array(values)
# Return if not grouped
if not element.kdims:
return data, mapping, style
# Define color dimension and data
if cidx is None or cidx>=element.ndims:
cdim = Dimension('index')
else:
r1_data[dimension_sanitizer(cdim.name)] = factors
r2_data[dimension_sanitizer(cdim.name)] = factors
factors = list(unique_iterator(factors))
if self.show_legend:
legend_prop = 'legend_field' if bokeh_version >= '1.3.5' else 'legend'
vbar_map[legend_prop] = cdim.name
return data, mapping, style