Skip to content

Commit 0532a09

Browse files
committed
owmds: Limit number of connected pairs to 10000
1 parent 5b58ab5 commit 0532a09

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Orange/widgets/unsupervised/owmds.py

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,8 @@ def paint(self, painter, option, widget=None):
6262

6363
super().paint(painter, option, widget)
6464

65+
#: Maximum number of displayed closest pairs.
66+
MAX_N_PAIRS = 10000
6567

6668
class OWMDS(OWWidget):
6769
name = "MDS"
@@ -123,6 +125,7 @@ class Outputs:
123125

124126
symbol_size = settings.Setting(8)
125127
symbol_opacity = settings.Setting(230)
128+
#: Percentage of all pairs displayed (ranges from 0 to 20)
126129
connected_pairs = settings.Setting(5)
127130
jitter = settings.Setting(0)
128131

@@ -903,7 +906,8 @@ def jitter(x, factor=1, rstate=None):
903906
# become an issue, I preferred using simpler code.
904907
m = self._effective_matrix
905908
n = len(m)
906-
p = (n * (n - 1) // 2 * self.connected_pairs) // 100
909+
n_pairs = min(n * (n - 1) // 2, 20 * MAX_N_PAIRS)
910+
p = n_pairs * self.connected_pairs // 100
907911
indcs = numpy.triu_indices(n, 1)
908912
sorted = numpy.argsort(m[indcs])[:p]
909913
self._similar_pairs = fpairs = numpy.empty(2 * p, dtype=int)

0 commit comments

Comments
 (0)