1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118
|
# Copyright (C) 2001-2017 Alan W. Irwin
# Multiple window and color map 0 demo.
#
# This file is part of PLplot.
#
# PLplot is free software; you can redistribute it and/or modify
# it under the terms of the GNU Library General Public License as published
# by the Free Software Foundation; either version 2 of the License, or
# (at your option) any later version.
#
# PLplot is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
# GNU Library General Public License for more details.
#
# You should have received a copy of the GNU Library General Public License
# along with PLplot; if not, write to the Free Software
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
#
from numpy import *
# Demonstrates multiple windows and default color map 0 palette.
# Draws a set of numbered boxes with colors according to cmap0 entry
def draw_windows(w, nw, cmap0_offset):
w.plschr(0.0, 3.5)
w.plfont(4)
for i in range(nw):
w.plcol0(i+cmap0_offset)
w.pladv(0)
vmin = 0.1
vmax = 0.9
for j in range(3):
w.plwidth(j + 1)
w.plvpor(vmin, vmax, vmin, vmax)
w.plwind(0.0, 1.0, 0.0, 1.0)
w.plbox("bc", 0.0, 0, "bc", 0.0, 0)
vmin = vmin + 0.1
vmax = vmax - 0.1
w.plwidth(1)
w.plptex(0.5, 0.5, 1.0, 0.0, 0.5, str(i))
# Demonstrate multiple windows and default color map 0 palette.
def demo1(w):
w.plbop()
# Divide screen into 16 regions
w.plssub(4, 4)
draw_windows(w,16,0)
w.pleop()
def demo2(w):
lmin = 0.15
lmax = 0.85
w.plbop()
# Divide screen into 100 regions
w.plssub(10,10)
r = zeros(116,"int")
g = zeros(116,"int")
b = zeros(116,"int")
for i in range(100):
h = (360./10.) * (i%10)
l = lmin + (lmax-lmin)*(i//10)/9.
s = 1.0
rgb = w.plhlsrgb(h, l, s)
r[i+16] = rgb[0]*255.001
g[i+16] = rgb[1]*255.001
b[i+16] = rgb[2]*255.001
# Load default cmap0 colors into our custom set
for i in range(16):
rgb = w.plgcol0(i)
r[i] = rgb[0]
g[i] = rgb[1]
b[i] = rgb[2]
# Now set cmap0 all at once (faster, since fewer driver calls)
w.plscmap0(r,g,b)
draw_windows(w,100,16)
w.pleop()
def main(w):
# For starting from scratch this call to pladv increments cursub, but
# then the following plssub sets it to zero so the whole thing is
# essentially a nop. However, for the case when other examples are run
# first, this call to pladv is absolutely essential to finish the
# preceding page.
#w.pladv(0)
# Run demos
demo1(w)
demo2(w)
# Restore defaults
w.plschr( 0.0, 1.0 )
w.plfont(1)
# cmap0 default color palette.
w.plspal0("cmap0_default.pal")
w.plssub(1, 1)
w.pleop()
# Must be done independently because otherwise this changes output files
# and destroys agreement with C examples.
#w.plcol0(1)
|