File mplot/mart.py changed (mode: 100644) (index 621ae2f..b690239) |
... |
... |
import matplotlib.path as mpath |
11 |
11 |
import matplotlib.colors as mcolor |
import matplotlib.colors as mcolor |
12 |
12 |
import matplotlib.patches as mpatches |
import matplotlib.patches as mpatches |
13 |
13 |
|
|
14 |
|
from .. import misc |
|
|
14 |
|
from .. import misc as wmisc |
15 |
15 |
|
|
16 |
16 |
#č Tahlensta blbost je použita funkcí tripcolor() |
#č Tahlensta blbost je použita funkcí tripcolor() |
17 |
17 |
#č Je třeba jú překopat na Triangulation třidu, |
#č Je třeba jú překopat na Triangulation třidu, |
|
... |
... |
def shull_plot(ax, hull, **kwargs): |
372 |
372 |
|
|
373 |
373 |
|
|
374 |
374 |
|
|
|
375 |
|
def rbf_density_colormesh(ax, ngrid=500, **kwargs): |
|
376 |
|
xmin, xmax = ax.get_xlim() |
|
377 |
|
ymin, ymax = ax.get_ylim() |
|
378 |
|
|
|
379 |
|
x = np.linspace(xmin, xmax, ngrid, endpoint=True) |
|
380 |
|
y = np.linspace(ymin, ymax, ngrid, endpoint=True) |
|
381 |
|
X, Y = np.meshgrid(x, y) |
|
382 |
|
|
|
383 |
|
XY = np.vstack((X.flatten(), Y.flatten())).T |
|
384 |
|
z = ax.sample_box.sample_pdf(XY, ax.space) |
|
385 |
|
Z = z.reshape(ngrid, ngrid) |
|
386 |
|
|
|
387 |
|
#č s tou alphou mně to nějak nepovedlo |
|
388 |
|
#č matplotlib ji nějak ignoruje |
|
389 |
|
#č a podle toho, co vidím v kódu |
|
390 |
|
#č není to problém kolormapy LinearSegmentedColormap |
|
391 |
|
# cdict = {'red':[[0.0, 253/255, 253/255], |
|
392 |
|
# [0.9999, 253/255, 167/255], |
|
393 |
|
# [1.0, 167/255, 167/255]], |
|
394 |
|
# 'green': [[0.0, 193/255, 193/255], |
|
395 |
|
# [0.9999, 193/255, 1.0], |
|
396 |
|
# [1.0, 1.0, 1.0]], |
|
397 |
|
# 'blue': [[0.0, 197/255, 197/255], |
|
398 |
|
# [0.9999, 197/255, 181/255], |
|
399 |
|
# [1.0, 181/255, 181/255]], |
|
400 |
|
# 'alpha': [[0.0, 1.0, 1.0], |
|
401 |
|
# [0.9999, 1.0, 0.2], |
|
402 |
|
# [1.0, 0.2, 0.2]]} |
|
403 |
|
|
|
404 |
|
cdict = {'red':[[0.0, 1.0, 1.0], |
|
405 |
|
[0.99999, 253/255, 167/255], |
|
406 |
|
[1.0, 167/255, 167/255]], |
|
407 |
|
'green': [[0.0, 1.0, 1.0], |
|
408 |
|
[0.99999, 0/255, 1], |
|
409 |
|
[1.0, 1.0, 1.0]], |
|
410 |
|
'blue': [[0.0, 1.0, 1.0], |
|
411 |
|
[0.99999, 17/255, 181/255], |
|
412 |
|
[1.0, 181/255, 181/255]]} |
|
413 |
|
|
|
414 |
|
|
|
415 |
|
cmap = mcolor.LinearSegmentedColormap('red_density', segmentdata=cdict, N=2560) |
|
416 |
|
#cmap = mcolors.ListedColormap(['#A7FFB5', '#FDC1C5']) |
|
417 |
|
rbf_values = wmisc.RBF_surrogate(ax.sample_box, ax.space).rbf(X, Y) |
|
418 |
|
#Z = np.log(Z/np.max(Z[rbf_values <= 0])) |
|
419 |
|
#C = -Z/np.min(Z) * (rbf_values <= 0) + 1/250 * (rbf_values > 0) |
|
420 |
|
Z = Z / np.max(Z[rbf_values <= 0]) |
|
421 |
|
C = (np.sqrt(Z)-1) * (rbf_values <= 0) + 1/250 * (rbf_values > 0) |
|
422 |
|
return ax.pcolormesh(X, Y, C, cmap=cmap, shading='nearest', edgecolors='face', |
|
423 |
|
zorder=-100, rasterized=True, **kwargs) |
|
424 |
|
|
|
425 |
|
|
|
426 |
|
def rbf_colormesh(ax, ngrid=500, **kwargs): |
|
427 |
|
xmin, xmax = ax.get_xlim() |
|
428 |
|
ymin, ymax = ax.get_ylim() |
|
429 |
|
|
|
430 |
|
x = np.linspace(xmin, xmax, ngrid, endpoint=True) |
|
431 |
|
y = np.linspace(ymin, ymax, ngrid, endpoint=True) |
|
432 |
|
X, Y = np.meshgrid(x, y) |
375 |
433 |
|
|
|
434 |
|
cmap = mcolor.ListedColormap(['#A7FFB5', '#FDC1C5']) |
|
435 |
|
rbf_values = wmisc.RBF_surrogate(ax.sample_box, ax.space).rbf(X, Y) |
|
436 |
|
C = rbf_values < 0 |
|
437 |
|
return ax.pcolormesh(X, Y, C, cmap=cmap, shading='nearest', zorder=-100, rasterized=True, **kwargs) |
376 |
438 |
|
|
377 |
439 |
|
|
378 |
440 |
def gcircle(ax, r=1, nrod=200, **kwargs): |
def gcircle(ax, r=1, nrod=200, **kwargs): |
|
... |
... |
def isocurves(ax, ngrid=200, limits=None, ncurves=5, **kwargs): |
427 |
489 |
|
|
428 |
490 |
const = 1 / (xmax - xmin) / (ymax - ymin) |
const = 1 / (xmax - xmin) / (ymax - ymin) |
429 |
491 |
r_levels = np.arange(ncurves) + 1 |
r_levels = np.arange(ncurves) + 1 |
430 |
|
levels = misc.isolevels_2d(Z, const, np.flip(r_levels), from_top=False) |
|
|
492 |
|
levels = wmisc.isolevels_2d(Z, const, np.flip(r_levels), from_top=False) |
431 |
493 |
return ax.contour(X, Y, Z.reshape(ngrid, ngrid), levels, **kwargs) |
return ax.contour(X, Y, Z.reshape(ngrid, ngrid), levels, **kwargs) |
432 |
494 |
|
|
433 |
495 |
|
|
File mplot/maxes.py changed (mode: 100644) (index 6617c09..7cd68b1) |
... |
... |
from matplotlib import lines as mlines |
24 |
24 |
|
|
25 |
25 |
# it is mostly for qt_plot, it offers availiable options to user |
# it is mostly for qt_plot, it offers availiable options to user |
26 |
26 |
__all__ = [ |
__all__ = [ |
27 |
|
'rbf_plot', 'rbf_diagram', |
|
|
27 |
|
'rbf_plot', 'rbf_density_plot', 'rbf_diagram', |
28 |
28 |
'candidates_plot', 'rejection_sampling_plot', |
'candidates_plot', 'rejection_sampling_plot', |
29 |
29 |
'candidates_sampling_plot', |
'candidates_sampling_plot', |
30 |
30 |
'convex_hull_plot', 'tri_plot', 'tri_nodes_plot', |
'convex_hull_plot', 'tri_plot', 'tri_nodes_plot', |
|
... |
... |
def rbf_diagram(ax): |
57 |
57 |
|
|
58 |
58 |
|
|
59 |
59 |
def rbf_plot(ax, nrid=500): |
def rbf_plot(ax, nrid=500): |
60 |
|
from .. import misc as wmisc |
|
61 |
60 |
tri_plot(ax) |
tri_plot(ax) |
62 |
61 |
x_bound = ax.get_xbound() |
x_bound = ax.get_xbound() |
63 |
62 |
y_bound = ax.get_ybound() |
y_bound = ax.get_ybound() |
64 |
|
|
|
65 |
|
x = np.linspace(*x_bound, nrid, endpoint=True) |
|
66 |
|
y = np.linspace(*y_bound, nrid, endpoint=True) |
|
67 |
|
X, Y = np.meshgrid(x, y) |
|
68 |
|
cmap = mcolors.ListedColormap(['#A7FFB5', '#FDC1C5']) |
|
69 |
|
rbf_values = wmisc.RBF_surrogate(ax.sample_box, ax.space).rbf(X, Y) |
|
70 |
|
ax.pcolor(X, Y, rbf_values<0, cmap=cmap, alpha=0.2 , zorder = -100) |
|
|
63 |
|
mart.rbf_colormesh(ax, nrid) |
71 |
64 |
ax.set_xbound(x_bound) |
ax.set_xbound(x_bound) |
72 |
65 |
ax.set_ybound(y_bound) |
ax.set_ybound(y_bound) |
73 |
66 |
|
|
|
67 |
|
def rbf_density_plot(ax, nrid=500): |
|
68 |
|
tri_plot(ax) |
|
69 |
|
x_bound = ax.get_xbound() |
|
70 |
|
y_bound = ax.get_ybound() |
|
71 |
|
mart.rbf_density_colormesh(ax, nrid) |
|
72 |
|
ax.set_xbound(x_bound) |
|
73 |
|
ax.set_ybound(y_bound) |
74 |
74 |
|
|
75 |
75 |
def rejection_sampling_plot(ax, linewidths=[0.7, 0.5, 0.4, 0.3, 0.2, 0.1]): |
def rejection_sampling_plot(ax, linewidths=[0.7, 0.5, 0.4, 0.3, 0.2, 0.1]): |
76 |
76 |
from .. import simplex as six |
from .. import simplex as six |