Esempio n. 1
0
    def kde(self, x, y, data=None):
        data = self.data if data is None else data
        plot_opts = dict(self._plot_opts)
        invert = self.kwds.get('orientation', False) == 'horizontal'
        opts = dict(plot=dict(plot_opts, invert_axes=invert),
                    style=self._style_opts,
                    norm=self._norm_opts)
        opts = {
            'Distribution': opts,
            'Area': opts,
            'NdOverlay': {
                'plot': dict(plot_opts, legend_limit=0)
            }
        }

        if y and self.by:
            ds = Dataset(data)
            return ds.to(Distribution, y, [], self.by).overlay().opts(opts)
        elif y:
            return Distribution(data, y, []).opts(opts)

        if self.columns:
            data = data[self.columns]
        df = pd.melt(data,
                     var_name=self.group_label,
                     value_name=self.value_label)
        ds = Dataset(df)
        if len(df):
            overlay = ds.to(Distribution, self.value_label).overlay()
        else:
            vdim = self.value_label + ' Density'
            overlay = NdOverlay({0: Area([], self.value_label, vdim)},
                                [self.group_label])
        return overlay.relabel(**self._relabel).opts(opts)
Esempio n. 2
0
 def test_dataset_extract_kdims(self):
     df = pd.DataFrame({
         'x': [1, 2, 3],
         'y': [1, 2, 3],
         'z': [1, 2, 3]
     },
                       columns=['x', 'y', 'z'])
     ds = Distribution(df)
     self.assertEqual(ds.kdims, [Dimension('x')])
Esempio n. 3
0
 def test_distribution_composite_empty_not_filled(self):
     dist = Distribution([]).opts(plot=dict(filled=False))
     curve = Compositor.collapse_element(dist, backend='matplotlib')
     self.assertIsInstance(curve, Curve)
     self.assertEqual(curve.vdims, [Dimension(('Value_density', 'Value Density'))])
Esempio n. 4
0
 def test_distribution_composite_custom_vdim(self):
     dist = Distribution(np.array([0, 1, 2]), vdims=['Test'])
     area = Compositor.collapse_element(dist, backend='matplotlib')
     self.assertIsInstance(area, Area)
     self.assertEqual(area.vdims, [Dimension('Test')])
Esempio n. 5
0
 def test_distribution_array_constructor(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertEqual(dist.kdims, [Dimension('Value')])
     self.assertEqual(dist.vdims, [Dimension('Density')])
Esempio n. 6
0
 def test_distribution_array_vdim_type(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertEqual(dist.get_dimension_type(1), np.float64)
 def test_distribution_not_filled(self):
     dist = Distribution([1, 1.1, 2.1, 3, 2, 1, 2.2]).options(filled=False)
     state = self._get_plot_state(dist)
     self.assertEqual(state['data'][0]['type'], 'scatter')
     self.assertEqual(state['data'][0]['mode'], 'lines')
     self.assertEqual(state['data'][0].get('fill'), None)
Esempio n. 8
0
 def test_distribution_dict_constructor(self):
     dist = Distribution({'Value': [0, 1, 2]})
     self.assertEqual(dist.kdims, [Dimension('Value')])
     self.assertEqual(dist.vdims, [Dimension('Density')])
Esempio n. 9
0
 def test_distribution_array_range_kdims(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertEqual(dist.range(0), (0, 2))
Esempio n. 10
0
 def test_distribution_array_kdim_type(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertTrue(np.issubdtype(dist.get_dimension_type(0), np.int_))
Esempio n. 11
0
 def test_distribution_array_vdim_type(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertEqual(dist.get_dimension_type(1), np.float64)
Esempio n. 12
0
 def test_distribution_array_range_kdims(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertEqual(dist.range(0), (0, 2))
Esempio n. 13
0
 def test_distribution_array_range_vdims(self):
     dist = Distribution(np.array([0, 1, 2]))
     dmin, dmax = dist.range(1)
     self.assertFalse(np.isfinite(dmin))
     self.assertFalse(np.isfinite(dmax))
Esempio n. 14
0
 def test_distribution_from_image(self):
     dist = Distribution(Image(np.arange(5)*np.arange(5)[:, np.newaxis]), 'z')
     self.assertEqual(dist.range(0), (0, 16))
 def test_distribution_filled(self):
     dist = Distribution([1, 1.1, 2.1, 3, 2, 1, 2.2])
     state = self._get_plot_state(dist)
     self.assertEqual(state['data'][0]['type'], 'scatter')
     self.assertEqual(state['data'][0]['mode'], 'lines')
     self.assertEqual(state['data'][0]['fill'], 'tozeroy')
 def test_visible(self):
     element = Distribution([1, 1.1, 2.1, 3, 2, 1,
                             2.2]).options(visible=False)
     state = self._get_plot_state(element)
     self.assertEqual(state['data'][0]['visible'], False)
Esempio n. 17
0
 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')])
Esempio n. 18
0
 def test_distribution_composite_not_filled(self):
     dist = Distribution(np.array([0, 1, 2])).opts(plot=dict(filled=False))
     curve = Compositor.collapse_element(dist)
     self.assertIsInstance(curve, Curve)
     self.assertEqual(curve.vdims,
                      [Dimension(('Value_density', 'Value Density'))])
Esempio n. 19
0
 def test_distribution_series_constructor(self):
     if pd is None:
         raise SkipTest("Test requires pandas")
     dist = Distribution(pd.Series([0, 1, 2], name='Value'))
     self.assertEqual(dist.kdims, [Dimension('Value')])
     self.assertEqual(dist.vdims, [Dimension('Density')])
Esempio n. 20
0
 def test_distribution_from_image(self):
     dist = Distribution(Image(np.arange(5)*np.arange(5)[:, np.newaxis]), 'z')
     self.assertEqual(dist.range(0), (0, 16))
Esempio n. 21
0
 def test_distribution_array_constructor_custom_vdim(self):
     dist = Distribution(np.array([0, 1, 2]), vdims=['Test'])
     self.assertEqual(dist.kdims, [Dimension('Value')])
     self.assertEqual(dist.vdims, [Dimension('Test')])
Esempio n. 22
0
 def test_distribution_series_constructor(self):
     dist = Distribution(pd.Series([0, 1, 2], name='Value'))
     self.assertEqual(dist.kdims, [Dimension('Value')])
     self.assertEqual(dist.vdims, [Dimension('Density')])
Esempio n. 23
0
 def test_distribution_array_range_vdims(self):
     dist = Distribution(np.array([0, 1, 2]))
     dmin, dmax = dist.range(1)
     self.assertFalse(np.isfinite(dmin))
     self.assertFalse(np.isfinite(dmax))
Esempio n. 24
0
 def test_distribution_composite_transfer_opts_with_group(self):
     dist = Distribution(np.array([0, 1, 2]), group='Test').opts(style=dict(color='red'))
     area = Compositor.collapse_element(dist, backend='matplotlib')
     opts = Store.lookup_options('matplotlib', area, 'style').kwargs
     self.assertEqual(opts.get('color', None), 'red')
Esempio n. 25
0
 def test_distribution_composite(self):
     dist = Distribution(np.array([0, 1, 2]))
     area = Compositor.collapse_element(dist, backend='matplotlib')
     self.assertIsInstance(area, Area)
     self.assertEqual(area.vdims, [Dimension(('Value_density', 'Value Density'))])
Esempio n. 26
0
 def test_distribution_array_kdim_type(self):
     dist = Distribution(np.array([0, 1, 2]))
     self.assertTrue(np.issubdtype(dist.get_dimension_type(0), np.int_))