Subject | Hash | Author | Date (UTC) |
---|---|---|---|
mplot.mart: add simplex_vectors() function | 7a90003e40bd459d2a3ef45a4867dfa392bd3fc8 | I am | 2023-03-30 13:20:10 |
simplex: use shares instead of probabilities in sinsitivity analysis | 75ff4258b95fd568d1b4d163cdc04d40952e0029 | I am | 2023-03-16 18:46:44 |
whitebox.get_sensitivities: mask nans and infinities | 1a754c51b3a1ef535e86b5b4cb6b75fe9e90840f | I am | 2023-03-14 22:33:52 |
simplex.SeparationAxis: fix previous commit | 61abd70e69d2fecd74535738c96e74a634af0ad1 | I am | 2023-03-12 16:49:22 |
simplex.SeparationAxis: print linprog solution in case of an unexpected status | af1aaac1dce3fbc51dc48418685d948a27cf72c6 | I am | 2023-03-12 15:18:07 |
g_models: add hyperbola LSF | 5f6df35b4280a11c0df1d3cd110250305805ce66 | I am | 2023-03-12 15:07:20 |
simplex._Sense: implement piece of postprocessing to get unique vectors | 4088852e703947643a8388b2ba8839a694211566 | I am | 2023-03-10 17:22:29 |
simplex.SeparationAxis: in case of an unexpected linprog status print result message too | 1c9346233693533afb07022c78308b3be6ea9ec7 | I am | 2023-03-10 15:40:06 |
whitebox: implement method to .get_sensitivities() from 2D boundary | 5729723cfe5c93658c3739fbfec384e135b44073 | I am | 2023-03-09 22:14:27 |
simplex.SeparationAxis: make an perfectionism-driven change | 8278c48915c326e7731f1934732550c5b9c18e64 | I am | 2023-03-09 21:51:18 |
simplex.SeparationAxis: little fix for an hypotetical issue | 838e476387c31f9c6847cf7ae8a2a01514038a03 | I am | 2023-03-09 15:19:48 |
simplex._Sense: bugfix | 3ae53e8b178107b8beb6ad960ec683c8d38a3b3c | I am | 2023-03-07 23:23:36 |
simplex._Sense: totally rework, finalized vectors are introduced | 829ba58a93481541a58cd4a9f6dae0ba9fb611c6 | I am | 2023-03-07 13:33:38 |
simplex: preliminary commit of an _Sense's auxiliary class - brand new SeparationAxis | c0bbb714400df48abf7a398e018c5626803bf024 | I am | 2023-03-04 10:17:12 |
simplex._Sense: one more optimization | a51f4ba65ad4a55ecc74fd82a6e011a4eeed8a5d | I am | 2023-02-26 15:21:23 |
qt_gui.qt_plot: implement sensitivity-related Arrows class | b5365ae3ca3ab0ed8018e60d4e8711c5c30e4d96 | I am | 2023-02-26 14:31:10 |
simplex._Sense: rename "sensibility" to sensitivity | a9d56d5386730263eb27e6e31f07b99bab0620fb | I am | 2023-02-26 14:29:54 |
g_models: add quadratic | 013b4ddc108b94061eaebc1a10d18427f10a34d4 | I am | 2023-02-24 08:04:12 |
simplex._Sense: one more performance trick | 59b423cca53b9975da67d876110927f233506de8 | I am | 2023-02-24 08:03:23 |
simplex: implement separability-based sensibility analysis (new brand _Sense class) | 9c5d58f2301893ceaec1b0e90bff76035cfa15b2 | I am | 2023-02-23 18:49:11 |
File | Lines added | Lines deleted |
---|---|---|
wellmet/mplot/mart.py | 38 | 0 |
File wellmet/mplot/mart.py changed (mode: 100644) (index a621ed0..06fa561) | |||
... | ... | def plot_the_best_candidate(ax, *args, **kwargs): | |
251 | 251 | ||
252 | 252 | ||
253 | 253 | ||
254 | def simplex_vectors(ax, **kwargs): | ||
255 | Tri = ax.sample_box.Tri | ||
256 | if ax.space != Tri.tri_space: | ||
257 | raise | ||
258 | |||
259 | result = Tri.perform_sensitivity_analysis() | ||
260 | vectors = result.vectors | ||
261 | probabilities = result.shares | ||
262 | |||
263 | ED = Tri.tri.points | ||
264 | simplices = Tri.tri.simplices | ||
265 | #pos = getattr(self.w.sample_box, self.w.space)[:,:2] | ||
266 | |||
267 | # offsets = {} | ||
268 | # for key, vector in result.unique_id_vectors.items(): | ||
269 | # offsets[key] = np.mean(Tri.get_finalized_supports(vector)) | ||
270 | |||
271 | |||
272 | X = [] | ||
273 | Y = [] | ||
274 | U = [] | ||
275 | V = [] | ||
276 | for simplex_id, vector in vectors.items(): | ||
277 | centroid = np.mean(ED[simplices[simplex_id]], axis=0) | ||
278 | #offset_fix = (offsets[id(vector)] - np.inner(centroid, vector.normal)) | ||
279 | #placement = centroid + vector.normal * offset_fix | ||
280 | x, y = centroid #placement | ||
281 | X.append(x) | ||
282 | Y.append(y) | ||
283 | u, v = -vector.normal * probabilities[simplex_id] | ||
284 | U.append(u) | ||
285 | V.append(v) | ||
286 | |||
287 | |||
288 | return ax.quiver(X, Y, U, V, **kwargs) | ||
289 | |||
290 | |||
291 | |||
254 | 292 | def qhull_polygon(ax, qhull, **kwargs): | def qhull_polygon(ax, qhull, **kwargs): |
255 | 293 | x, y = qhull.points[qhull.vertices].T | x, y = qhull.points[qhull.vertices].T |
256 | 294 | return ax.fill(x, y, **kwargs) | return ax.fill(x, y, **kwargs) |