tioga 1.4 → 1.5
Sign up to get free protection for your applications and to get access to all the features.
- data/Tioga_README +177 -139
- data/split/Dtable/dtable.c +3 -0
- data/split/Dtable/namespace.h +7 -3
- data/split/Dtable/symbols.h +2 -2
- data/split/Dvector/dvector.c +3 -2
- data/split/Dvector/namespace.h +7 -3
- data/split/Dvector/symbols.h +2 -2
- data/split/Flate/flate.c +2 -1
- data/split/Flate/namespace.h +7 -3
- data/split/Flate/symbols.h +2 -2
- data/split/Function/extconf.rb +1 -1
- data/split/Function/function.c +38 -6
- data/split/Function/joint_qsort.c +1 -2
- data/split/Function/namespace.h +7 -3
- data/split/Function/symbols.h +2 -2
- data/split/Tioga/axes.c +4 -5
- data/split/Tioga/figures.c +1 -0
- data/split/Tioga/figures.h +5 -3
- data/split/Tioga/lib/Arcs_and_Circles.rb +1 -1
- data/split/Tioga/lib/ColorConstants.rb +9 -9
- data/split/Tioga/lib/Creating_Paths.rb +1 -1
- data/split/Tioga/lib/FigMkr.rb +25 -23
- data/split/Tioga/lib/FigureConstants.rb +2 -2
- data/split/Tioga/lib/Figures_and_Plots.rb +6 -6
- data/split/Tioga/lib/Images.rb +2 -2
- data/split/Tioga/lib/MarkerConstants.rb +3 -3
- data/split/Tioga/lib/Markers.rb +6 -6
- data/split/Tioga/lib/Page_Frame_Bounds.rb +1 -1
- data/split/Tioga/lib/Rectangles.rb +1 -1
- data/split/Tioga/lib/Shading.rb +2 -2
- data/split/Tioga/lib/Special_Paths.rb +5 -5
- data/split/Tioga/lib/Strokes.rb +2 -2
- data/split/Tioga/lib/TeX_Text.rb +5 -5
- data/split/Tioga/lib/TexPreamble.rb +116 -116
- data/split/Tioga/lib/Transparency.rb +2 -2
- data/split/Tioga/lib/Using_Paths.rb +1 -1
- data/split/Tioga/lib/X_and_Y_Axes.rb +19 -15
- data/split/Tioga/lib/irb_tioga.rb +36 -11
- data/split/Tioga/lib/maker.rb +201 -0
- data/split/Tioga/lib/tioga_ui_cmds.rb +6 -2
- data/split/Tioga/namespace.h +7 -3
- data/split/Tioga/pdfcoords.c +20 -2
- data/split/Tioga/pdfs.h +1 -1
- data/split/Tioga/symbols.h +2 -2
- data/split/extconf.rb +7 -5
- data/split/namespace.h +7 -3
- data/split/symbols.c +1 -9
- data/split/symbols.h +2 -2
- metadata +19 -23
- data/split/Dtable/symbols.c +0 -92
- data/split/Dvector/symbols.c +0 -92
- data/split/Flate/symbols.c +0 -92
- data/split/Function/symbols.c +0 -92
- data/split/Tioga/symbols.c +0 -92
data/split/Flate/namespace.h
CHANGED
@@ -34,14 +34,18 @@
|
|
34
34
|
*/
|
35
35
|
|
36
36
|
#ifdef __APPLE__
|
37
|
-
# define
|
37
|
+
# define INTERN __private_extern__
|
38
38
|
# define PUBLIC
|
39
39
|
#elif __GNUC__ >= 4 /* we have the visibility attribute */
|
40
|
-
# define
|
40
|
+
# define INTERN __attribute__ ((visibility ("hidden")))
|
41
41
|
# define PUBLIC __attribute__ ((visibility ("default")))
|
42
42
|
#else /* not really good */
|
43
|
-
# define
|
43
|
+
# define INTERN
|
44
44
|
# define PUBLIC
|
45
45
|
#endif /* __APPLE__ and __GNU_C_ >= 4*/
|
46
46
|
|
47
|
+
/* In any case, PRIVATE is static */
|
48
|
+
|
49
|
+
#define PRIVATE static
|
50
|
+
|
47
51
|
#endif
|
data/split/Flate/symbols.h
CHANGED
@@ -22,10 +22,10 @@ PRIVATE void * rb_import_symbol_no_raise(VALUE module,
|
|
22
22
|
|
23
23
|
#define DECLARE_SYMBOL(ret_type,name,args) \
|
24
24
|
typedef ret_type (*rb_export_##name##_type) args;\
|
25
|
-
|
25
|
+
INTERN rb_export_##name##_type name
|
26
26
|
|
27
27
|
#define IMPLEMENT_SYMBOL(name)\
|
28
|
-
|
28
|
+
INTERN rb_export_##name##_type name = 0;
|
29
29
|
|
30
30
|
#define RB_IMPORT_SYMBOL(module, name) \
|
31
31
|
name = (rb_export_##name##_type) rb_import_symbol(module, #name)
|
data/split/Function/extconf.rb
CHANGED
data/split/Function/function.c
CHANGED
@@ -27,6 +27,7 @@
|
|
27
27
|
#include <ruby.h>
|
28
28
|
|
29
29
|
#include "dvector.h"
|
30
|
+
#include "../symbols.c"
|
30
31
|
|
31
32
|
#include <math.h>
|
32
33
|
/* compiler-dependent definitions, such as is_okay_number */
|
@@ -472,8 +473,8 @@ static VALUE function_make_interpolant(VALUE self)
|
|
472
473
|
|
473
474
|
|
474
475
|
/* the function fort joint sorting...*/
|
475
|
-
|
476
|
-
|
476
|
+
INTERN void joint_quicksort(double *const x_values, double * const y_values,
|
477
|
+
size_t total_elems);
|
477
478
|
|
478
479
|
/* Dvector's lock */
|
479
480
|
#define DVEC_TMPLOCK FL_USER1
|
@@ -865,9 +866,10 @@ static VALUE function_integrate(int argc, VALUE *argv, VALUE self)
|
|
865
866
|
}
|
866
867
|
|
867
868
|
/*
|
868
|
-
|
869
|
-
|
870
|
-
|
869
|
+
Computes the primitive of the Function (whose value for the first point is 0)
|
870
|
+
and returns it as a new Function.
|
871
|
+
The newly created function shares the X vector with the previous one.
|
872
|
+
*/
|
871
873
|
static VALUE function_primitive(VALUE self)
|
872
874
|
{
|
873
875
|
long size = function_sanity_check(self);
|
@@ -886,6 +888,34 @@ static VALUE function_primitive(VALUE self)
|
|
886
888
|
return Function_Create(get_x_vector(self), primitive);
|
887
889
|
}
|
888
890
|
|
891
|
+
/*
|
892
|
+
Computes the derivative of the Function and returns it as a new Function.
|
893
|
+
The newly created function shares the X vector with the previous one.
|
894
|
+
*/
|
895
|
+
static VALUE function_derivative(VALUE self)
|
896
|
+
{
|
897
|
+
long size = function_sanity_check(self);
|
898
|
+
const double *x = Dvector_Data_for_Read(get_x_vector(self),NULL);
|
899
|
+
const double *y = Dvector_Data_for_Read(get_y_vector(self),NULL);
|
900
|
+
VALUE derivative = Dvector_Create();
|
901
|
+
long i = 0;
|
902
|
+
double val = 0;
|
903
|
+
/* First value */
|
904
|
+
Dvector_Push_Double(derivative, (y[i+1] - y[i]) /(x[i+1] - x[i]));
|
905
|
+
i++;
|
906
|
+
while(i < (size - 1))
|
907
|
+
{
|
908
|
+
Dvector_Push_Double(derivative,
|
909
|
+
.5 * (
|
910
|
+
(y[i+1] - y[i]) /(x[i+1] - x[i]) +
|
911
|
+
(y[i] - y[i-1]) /(x[i] - x[i-1])
|
912
|
+
));
|
913
|
+
i++;
|
914
|
+
}
|
915
|
+
Dvector_Push_Double(derivative, (y[i] - y[i-1]) /(x[i] - x[i-1]));
|
916
|
+
return Function_Create(get_x_vector(self), derivative);
|
917
|
+
}
|
918
|
+
|
889
919
|
/*
|
890
920
|
Returns the number of points inside the function.
|
891
921
|
*/
|
@@ -908,7 +938,7 @@ static VALUE function_size(VALUE self)
|
|
908
938
|
- some functions for data access : #x, #y, #point;
|
909
939
|
- some utiliy functions: #split_monotonic, #strip_nan;
|
910
940
|
- data inspection: #min, #max;
|
911
|
-
- some
|
941
|
+
- some computational functions: #integrate, #primitive, #derivative.
|
912
942
|
|
913
943
|
And getting bigger everyday...
|
914
944
|
*/
|
@@ -965,6 +995,8 @@ void Init_Function()
|
|
965
995
|
rb_define_method(cFunction, "integrate", function_integrate, -1);
|
966
996
|
/* primitive */
|
967
997
|
rb_define_method(cFunction, "primitive", function_primitive, 0);
|
998
|
+
/* derivative */
|
999
|
+
rb_define_method(cFunction, "derivative", function_derivative, 0);
|
968
1000
|
|
969
1001
|
/* distance to a point */
|
970
1002
|
rb_define_method(cFunction, "distance", function_distance, -1);
|
@@ -94,8 +94,7 @@ typedef struct
|
|
94
94
|
smaller partition. This *guarantees* no more than log (total_elems)
|
95
95
|
stack size is needed (actually O(1) in this case)! */
|
96
96
|
|
97
|
-
|
98
|
-
void
|
97
|
+
INTERN void
|
99
98
|
joint_quicksort (double *const x_values, double * const y_values,
|
100
99
|
size_t total_elems)
|
101
100
|
{
|
data/split/Function/namespace.h
CHANGED
@@ -34,14 +34,18 @@
|
|
34
34
|
*/
|
35
35
|
|
36
36
|
#ifdef __APPLE__
|
37
|
-
# define
|
37
|
+
# define INTERN __private_extern__
|
38
38
|
# define PUBLIC
|
39
39
|
#elif __GNUC__ >= 4 /* we have the visibility attribute */
|
40
|
-
# define
|
40
|
+
# define INTERN __attribute__ ((visibility ("hidden")))
|
41
41
|
# define PUBLIC __attribute__ ((visibility ("default")))
|
42
42
|
#else /* not really good */
|
43
|
-
# define
|
43
|
+
# define INTERN
|
44
44
|
# define PUBLIC
|
45
45
|
#endif /* __APPLE__ and __GNU_C_ >= 4*/
|
46
46
|
|
47
|
+
/* In any case, PRIVATE is static */
|
48
|
+
|
49
|
+
#define PRIVATE static
|
50
|
+
|
47
51
|
#endif
|
data/split/Function/symbols.h
CHANGED
@@ -22,10 +22,10 @@ PRIVATE void * rb_import_symbol_no_raise(VALUE module,
|
|
22
22
|
|
23
23
|
#define DECLARE_SYMBOL(ret_type,name,args) \
|
24
24
|
typedef ret_type (*rb_export_##name##_type) args;\
|
25
|
-
|
25
|
+
INTERN rb_export_##name##_type name
|
26
26
|
|
27
27
|
#define IMPLEMENT_SYMBOL(name)\
|
28
|
-
|
28
|
+
INTERN rb_export_##name##_type name = 0;
|
29
29
|
|
30
30
|
#define RB_IMPORT_SYMBOL(module, name) \
|
31
31
|
name = (rb_export_##name##_type) rb_import_symbol(module, #name)
|
data/split/Tioga/axes.c
CHANGED
@@ -294,10 +294,9 @@ char *Get_String(VALUE ary, int index) {
|
|
294
294
|
return StringValuePtr(string);
|
295
295
|
}
|
296
296
|
|
297
|
-
#define MIN_FLTDIG 3
|
298
297
|
#define MAX_FIXDIG_POS 6
|
299
|
-
#define MAX_FIXDIG_NEG
|
300
|
-
#define DIGMAX_DEF
|
298
|
+
#define MAX_FIXDIG_NEG 6
|
299
|
+
#define DIGMAX_DEF 6
|
301
300
|
|
302
301
|
static void Pick_Label_Precision(double vmin, double vmax, double tick, bool use_fixed_pt,
|
303
302
|
int *mode, int *prec, int digmax, int *scale) {
|
@@ -391,7 +390,7 @@ static char **Get_Labels(FM *p, PlotAxis *s)
|
|
391
390
|
ps = NULL;
|
392
391
|
if (i == upper_right && !s->log_values && mode && scale)
|
393
392
|
sprintf(ps = postfix,
|
394
|
-
(s->vertical)? "
|
393
|
+
(s->vertical)? "$\\times$\\tiogayaxisnumericlabel{10^{%d}}" : "$\\times$\\tiogaxaxisnumericlabel{10^{%d}}",
|
395
394
|
scale);
|
396
395
|
if (i == lower_left && s->nmajors >= 2 && s->vertical &&
|
397
396
|
(s->majors[i] == ((s->reversed)? s->axis_max : s->axis_min)) &&
|
@@ -557,7 +556,7 @@ static void draw_minor_ticks(FM *p, PlotAxis *s)
|
|
557
556
|
if (s->number_of_minor_intervals <= 0) {
|
558
557
|
if (s->log_values) {
|
559
558
|
double interval = s->majors[1] - s->majors[0];
|
560
|
-
s->number_of_minor_intervals = (abs(interval) != 1.0 || s->nmajors >
|
559
|
+
s->number_of_minor_intervals = (abs(interval) != 1.0 || s->nmajors > 10)? 1 : 9;
|
561
560
|
} else s->number_of_minor_intervals = Pick_Number_of_Minor_Intervals(s->interval);
|
562
561
|
}
|
563
562
|
int i, j, nsub = s->number_of_minor_intervals;
|
data/split/Tioga/figures.c
CHANGED
data/split/Tioga/figures.h
CHANGED
@@ -46,8 +46,10 @@
|
|
46
46
|
|
47
47
|
// Frame Sides
|
48
48
|
|
49
|
-
#define LEFT
|
49
|
+
#define LEFT -1
|
50
|
+
// LEFT == LEFT_JUSTIFIED
|
50
51
|
#define RIGHT 1
|
52
|
+
// RIGHT == RIGHT_JUSTIFIED
|
51
53
|
#define TOP 2
|
52
54
|
#define BOTTOM 3
|
53
55
|
|
@@ -84,9 +86,9 @@
|
|
84
86
|
|
85
87
|
// Text and Markers
|
86
88
|
|
87
|
-
#define LEFT_JUSTIFIED
|
89
|
+
#define LEFT_JUSTIFIED LEFT
|
88
90
|
#define CENTERED 0
|
89
|
-
#define RIGHT_JUSTIFIED
|
91
|
+
#define RIGHT_JUSTIFIED RIGHT
|
90
92
|
|
91
93
|
#define ALIGNED_AT_TOP 0
|
92
94
|
#define ALIGNED_AT_MIDHEIGHT 1
|
@@ -11,7 +11,7 @@ class Arcs_and_Circles < Doc < FigureMaker
|
|
11
11
|
#
|
12
12
|
# The illustration shows in dark blue the arc that is added for the control points given in red.
|
13
13
|
#
|
14
|
-
#
|
14
|
+
# link:images/append_arc.png
|
15
15
|
#
|
16
16
|
def append_arc_to_path(x_start, y_start, x_corner, y_corner, x_end, y_end, dx, dy)
|
17
17
|
end
|
@@ -33,13 +33,13 @@ module Tioga
|
|
33
33
|
#
|
34
34
|
# - For the protanope, the brightness of red, orange, and yellow is much reduced compared to normal. This dimming can be so pronounced that reds may be confused with black or dark gray, and red traffic lights may appear to be extinguished. They may learn to distinguish reds from yellows and from greens primarily on the basis of their apparent brightness or lightness, not on any perceptible hue difference. Violet, lavender, and purple are indistinguishable from various shades of blue because their reddish components are so dimmed as to be invisible. E.g. Pink flowers, reflecting both red light and blue light, may appear just blue to the protanope.
|
35
35
|
#
|
36
|
-
#
|
37
|
-
#
|
36
|
+
# link:images/normalcolor72gif.png
|
37
|
+
# link:images/protanope72gif.png
|
38
38
|
#
|
39
39
|
# - The deuteranope suffers the same hue discrimination problems as the protanope, but without the abnormal dimming. The names red, orange, yellow, and green really mean very little to him aside from being different names that every one else around him seems to be able to agree on. Similarly, violet, lavender, purple, and blue, seem to be too many names to use logically for hues that all look alike to him.
|
40
40
|
#
|
41
|
-
#
|
42
|
-
#
|
41
|
+
# link:images/normalcolor72gif.png
|
42
|
+
# link:images/deuteranope72gif.png
|
43
43
|
#
|
44
44
|
# ---
|
45
45
|
#
|
@@ -51,7 +51,7 @@ module Tioga
|
|
51
51
|
# On the right are the same plots as they might appear to someone with protanopia
|
52
52
|
# (made using VischeckURL[http://www.vischeck.com/vischeck/vischeckURL.php] -- a very useful site).
|
53
53
|
#
|
54
|
-
#
|
54
|
+
# link:images/color_choices.png
|
55
55
|
#
|
56
56
|
# By using the first set of colors rather than the second, you get a plot that looks good for
|
57
57
|
# those in your audience with normal color vision and is much easier on those with a color deficiency.
|
@@ -61,13 +61,13 @@ module Tioga
|
|
61
61
|
#
|
62
62
|
# ---
|
63
63
|
#
|
64
|
-
#
|
64
|
+
# link:images/colors1.png
|
65
65
|
#
|
66
|
-
#
|
66
|
+
# link:images/colors2.png
|
67
67
|
#
|
68
|
-
#
|
68
|
+
# link:images/colors3.png
|
69
69
|
#
|
70
|
-
#
|
70
|
+
# link:images/colors4.png
|
71
71
|
#
|
72
72
|
|
73
73
|
module ColorConstants
|
@@ -30,7 +30,7 @@ class Creating_Paths < Doc < FigureMaker
|
|
30
30
|
#
|
31
31
|
# The illustration shows in dark blue the curve that is added for the control points given in red.
|
32
32
|
#
|
33
|
-
#
|
33
|
+
# link:images/append_curve.png
|
34
34
|
#
|
35
35
|
def append_curve_to_path(x1, y1, x2, y2, x3, y3)
|
36
36
|
end
|
data/split/Tioga/lib/FigMkr.rb
CHANGED
@@ -33,7 +33,7 @@ class FigureMaker
|
|
33
33
|
|
34
34
|
|
35
35
|
# The tag used for cvs export
|
36
|
-
CVS_TAG = "
|
36
|
+
CVS_TAG = "rel_1_5" # now manually cheating...
|
37
37
|
|
38
38
|
# Version now uses the CVS_TAG to create the version number. CVS_TAG should
|
39
39
|
# look like 'rel_1_1_0' for the 1.1.0 release.
|
@@ -43,7 +43,7 @@ class FigureMaker
|
|
43
43
|
if version.length > 0
|
44
44
|
return version
|
45
45
|
else
|
46
|
-
return "SNV $Revision:
|
46
|
+
return "SNV $Revision: 348 $" # Can't do better than that.
|
47
47
|
end
|
48
48
|
end
|
49
49
|
|
@@ -1847,6 +1847,29 @@ class FigureMaker
|
|
1847
1847
|
end
|
1848
1848
|
|
1849
1849
|
|
1850
|
+
|
1851
|
+
# make create_figure_temp_files public for use by applications like ctioga.
|
1852
|
+
|
1853
|
+
|
1854
|
+
def create_figure_temp_files(name) # returns true if successful, false if failed.
|
1855
|
+
if name.kind_of?(Integer)
|
1856
|
+
num = name
|
1857
|
+
name = @figure_names[num]
|
1858
|
+
else
|
1859
|
+
num = @figure_names.index(name)
|
1860
|
+
end
|
1861
|
+
return false if num == nil
|
1862
|
+
cmd = @figure_commands[num]
|
1863
|
+
return false unless cmd.kind_of?(Proc)
|
1864
|
+
begin
|
1865
|
+
reset_legend_info
|
1866
|
+
result = private_make(name, cmd)
|
1867
|
+
return result
|
1868
|
+
rescue Exception => er
|
1869
|
+
report_error(er, "ERROR while executing command: #{cmd}")
|
1870
|
+
end
|
1871
|
+
return false
|
1872
|
+
end
|
1850
1873
|
|
1851
1874
|
|
1852
1875
|
|
@@ -1895,27 +1918,6 @@ class FigureMaker
|
|
1895
1918
|
end
|
1896
1919
|
return result
|
1897
1920
|
end
|
1898
|
-
|
1899
|
-
|
1900
|
-
def create_figure_temp_files(name) # returns true if successful, false if failed.
|
1901
|
-
if name.kind_of?(Integer)
|
1902
|
-
num = name
|
1903
|
-
name = @figure_names[num]
|
1904
|
-
else
|
1905
|
-
num = @figure_names.index(name)
|
1906
|
-
end
|
1907
|
-
return false if num == nil
|
1908
|
-
cmd = @figure_commands[num]
|
1909
|
-
return false unless cmd.kind_of?(Proc)
|
1910
|
-
begin
|
1911
|
-
reset_legend_info
|
1912
|
-
result = private_make(name, cmd)
|
1913
|
-
return result
|
1914
|
-
rescue Exception => er
|
1915
|
-
report_error(er, "ERROR while executing command: #{cmd}")
|
1916
|
-
end
|
1917
|
-
return false
|
1918
|
-
end
|
1919
1921
|
|
1920
1922
|
|
1921
1923
|
def finish_making_pdfs(fignums,report)
|
@@ -45,8 +45,8 @@ module FigureConstants
|
|
45
45
|
ALIGNED_AT_BASELINE = 2
|
46
46
|
ALIGNED_AT_BOTTOM = 3
|
47
47
|
|
48
|
-
LEFT =
|
49
|
-
RIGHT =
|
48
|
+
LEFT = LEFT_JUSTIFIED # LEFT == LEFT_JUSTIFIED so Bill doesn't get confused!
|
49
|
+
RIGHT = RIGHT_JUSTIFIED # similarly, make RIGHT == RIGHT_JUSTIFIED
|
50
50
|
TOP = 2
|
51
51
|
BOTTOM = 3
|
52
52
|
|
@@ -67,7 +67,7 @@ Example
|
|
67
67
|
jpg_image_transparent }
|
68
68
|
end
|
69
69
|
|
70
|
-
|
70
|
+
link:images/Subfigures.png
|
71
71
|
=end
|
72
72
|
def subfigure(margins=nil,&cmd)
|
73
73
|
end
|
@@ -89,7 +89,7 @@ Examples
|
|
89
89
|
t.subplot { t.yaxis_loc = t.ylabel_side = RIGHT; t.no_left_edge; greens }
|
90
90
|
end
|
91
91
|
|
92
|
-
|
92
|
+
link:images/Two_Ys.png
|
93
93
|
|
94
94
|
def side_by_side
|
95
95
|
t.do_box_labels('Side by Side', 'Position', nil)
|
@@ -101,7 +101,7 @@ http://theory.kitp.ucsb.edu/~paxton/tioga_jpegs/Two_Ys.jpg
|
|
101
101
|
t.yaxis_loc = t.ylabel_side = RIGHT; t.left_edge_type = AXIS_LINE_ONLY; reds }
|
102
102
|
end
|
103
103
|
|
104
|
-
|
104
|
+
link:images/Side_by_Side.png
|
105
105
|
|
106
106
|
def rows
|
107
107
|
t.do_box_labels('Blues, Reds, Greens', 'Position', nil)
|
@@ -122,7 +122,7 @@ http://theory.kitp.ucsb.edu/~paxton/tioga_jpegs/Side_by_Side.jpg
|
|
122
122
|
end
|
123
123
|
end
|
124
124
|
|
125
|
-
|
125
|
+
link:images/Rows.png
|
126
126
|
|
127
127
|
def trio
|
128
128
|
t.rescale(0.6)
|
@@ -133,7 +133,7 @@ http://theory.kitp.ucsb.edu/~paxton/tioga_jpegs/Rows.jpg
|
|
133
133
|
t.subplot('top_margin' => 0.55) { side_by_side }
|
134
134
|
end
|
135
135
|
|
136
|
-
|
136
|
+
link:images/Trio.png
|
137
137
|
=end
|
138
138
|
def subplot(margins=nil,&cmd)
|
139
139
|
end
|
@@ -215,7 +215,7 @@ Examples
|
|
215
215
|
end
|
216
216
|
end
|
217
217
|
|
218
|
-
|
218
|
+
link:images/Legends.png
|
219
219
|
|
220
220
|
=end
|
221
221
|
def show_plot_with_legend(dict=nil, &cmd)
|
data/split/Tioga/lib/Images.rb
CHANGED
@@ -119,7 +119,7 @@ Examples
|
|
119
119
|
2) create_monochrome_image_data for checker board pattern
|
120
120
|
3) show_image of Jupiter using the monochrome image data as a stencil_mask
|
121
121
|
|
122
|
-
|
122
|
+
link:images/Sample_Jpegs.png
|
123
123
|
|
124
124
|
The following is a more lengthy example showing the use of a "false colored" image to
|
125
125
|
represent a 2 dimensional table of data. In this case, the data comes from
|
@@ -212,7 +212,7 @@ is 'sampled_data' which shows the image in one subplot and the colorbar in anoth
|
|
212
212
|
end
|
213
213
|
end
|
214
214
|
|
215
|
-
|
215
|
+
link:images/Sampled_Data.png
|
216
216
|
|
217
217
|
=end
|
218
218
|
def show_image(dict)
|