@@ -506,7 +506,7 @@ def plot(self, n=None, tri_alpha=0):
506
506
if self .vdim > 1 :
507
507
raise NotImplementedError ('holoviews currently does not support' ,
508
508
'3D surface plots in bokeh.' )
509
- if len ( self .ndim ) != 2 :
509
+ if self .ndim != 2 :
510
510
raise NotImplementedError ("Only 2D plots are implemented: You can "
511
511
"plot a 2D slice with 'plot_slice'." )
512
512
x , y = self ._bbox
@@ -516,7 +516,9 @@ def plot(self, n=None, tri_alpha=0):
516
516
if n is None :
517
517
# Calculate how many grid points are needed.
518
518
# factor from A=√3/4 * a² (equilateral triangle)
519
- n = int (0.658 / np .sqrt (np .min (self .tri .volumes ())))
519
+ scale_factor = np .product (np .diag (self ._transform ))
520
+ a_sq = np .sqrt (np .min (self .tri .volumes ()) * scale_factor )
521
+ n = max (10 , int (0.658 / a_sq ))
520
522
521
523
xs = ys = np .linspace (0 , 1 , n )
522
524
xs = xs * (x [1 ] - x [0 ]) + x [0 ]
@@ -585,7 +587,9 @@ def plot_slice(self, cut_mapping, n=None):
585
587
if n is None :
586
588
# Calculate how many grid points are needed.
587
589
# factor from A=√3/4 * a² (equilateral triangle)
588
- n = int (0.658 / np .sqrt (np .min (self .tri .volumes ())))
590
+ scale_factor = np .product (np .diag (self ._transform ))
591
+ a_sq = np .sqrt (np .min (self .tri .volumes ()) * scale_factor )
592
+ n = max (10 , int (0.658 / a_sq ))
589
593
590
594
xs = ys = np .linspace (0 , 1 , n )
591
595
xys = [xs [:, None ], ys [None , :]]
@@ -780,7 +784,7 @@ def plot_isoline(self, level=0.0, n=None, tri_alpha=0):
780
784
plot = plot * self .plot_isoline (level = l , n = - 1 )
781
785
return plot
782
786
783
- vertices , lines = self .self . _get_iso (level , which = 'line' )
787
+ vertices , lines = self ._get_iso (level , which = 'line' )
784
788
paths = [[vertices [i ], vertices [j ]] for i , j in lines ]
785
789
contour = hv .Path (paths )
786
790
0 commit comments