Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit 2d90c5a

Browse files
alvarosgalvarosg
alvarosg
authored andcommitted
Added ArbitaryNorm and RootNorm classes in colors, as well as examples of
use.
1 parent 23afcb4 commit 2d90c5a

File tree

3 files changed

+540
-0
lines changed

3 files changed

+540
-0
lines changed
Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
"""
2+
Demonstration of using the ArbitraryNorm classes for normalization.
3+
"""
4+
5+
import numpy as np
6+
import matplotlib.colors as colors
7+
import matplotlib.pyplot as plt
8+
import matplotlib.cm as cm
9+
10+
x=np.linspace(0,16*np.pi,1024)
11+
y=np.linspace(-1,1,512)
12+
X,Y=np.meshgrid(x,y)
13+
14+
data=np.zeros(X.shape)
15+
16+
data[Y>0]=np.cos(X[Y>0])*Y[Y>0]**2
17+
18+
for i,val in enumerate(np.arange(-1,1.1,0.2)):
19+
if val<0:data[(X>(i*(50./11)))*(Y<0)]=val
20+
if val>0:data[(X>(i*(50./11)))*(Y<0)]=val*2
21+
22+
figsize=(16,10)
23+
cmap=cm.gist_rainbow
24+
25+
plt.figure(figsize=figsize)
26+
plt.pcolormesh(x,y,data,cmap=cmap)
27+
plt.title('Linear Scale')
28+
plt.colorbar(format='%.3g')
29+
plt.xlim(0,16*np.pi)
30+
plt.ylim(-1,1)
31+
32+
plt.figure(figsize=figsize)
33+
norm=colors.ArbitraryNorm(fpos=(lambda x: x**0.2),
34+
fposinv=(lambda x: x**5),
35+
fneg=(lambda x: x**0.5),
36+
fneginv=(lambda x: x**2),
37+
center=0.4)
38+
plt.pcolormesh(x,y,data,cmap=cmap,norm=norm)
39+
plt.title('Arbitrary norm')
40+
plt.colorbar(ticks=norm.ticks(),format='%.3g')
41+
plt.xlim(0,16*np.pi)
42+
plt.ylim(-1,1)
43+
44+
plt.figure(figsize=figsize)
45+
norm=colors.PositiveArbitraryNorm(vmin=0,
46+
fpos=(lambda x: x**0.5),
47+
fposinv=(lambda x: x**2))
48+
plt.pcolormesh(x,y,data,cmap=cmap,norm=norm)
49+
plt.title('Positive arbitrary norm')
50+
plt.colorbar(ticks=norm.ticks(),format='%.3g')
51+
plt.xlim(0,16*np.pi)
52+
plt.ylim(-1,1)
53+
54+
plt.figure(figsize=figsize)
55+
norm=colors.NegativeArbitraryNorm(vmax=0,
56+
fneg=(lambda x: x**0.5),
57+
fneginv=(lambda x: x**2))
58+
plt.pcolormesh(x,y,data,cmap=cmap,norm=norm)
59+
plt.title('Negative arbitrary norm')
60+
plt.colorbar(ticks=norm.ticks(),format='%.3g')
61+
plt.xlim(0,16*np.pi)
62+
plt.ylim(-1,1)
Lines changed: 54 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,54 @@
1+
"""
2+
Demonstration of using the RootNorm classes for normalization.
3+
"""
4+
5+
import numpy as np
6+
import matplotlib.colors as colors
7+
import matplotlib.pyplot as plt
8+
import matplotlib.cm as cm
9+
10+
x=np.linspace(0,16*np.pi,1024)
11+
y=np.linspace(-1,1,512)
12+
X,Y=np.meshgrid(x,y)
13+
14+
data=np.zeros(X.shape)
15+
16+
data[Y>0]=np.cos(X[Y>0])*Y[Y>0]**2
17+
18+
for i,val in enumerate(np.arange(-1,1.1,0.2)):
19+
if val<0:data[(X>(i*(50./11)))*(Y<0)]=val
20+
if val>0:data[(X>(i*(50./11)))*(Y<0)]=val*2
21+
22+
figsize=(16,10)
23+
cmap=cm.gist_rainbow
24+
25+
plt.figure(figsize=figsize)
26+
plt.pcolormesh(x,y,data,cmap=cmap)
27+
plt.title('Linear Scale')
28+
plt.colorbar(format='%.3g')
29+
plt.xlim(0,16*np.pi)
30+
plt.ylim(-1,1)
31+
32+
plt.figure(figsize=figsize)
33+
norm=colors.SymRootNorm(orderpos=7,orderneg=2,center=0.3)
34+
plt.pcolormesh(x,y,data,cmap=cmap,norm=norm)
35+
plt.title('Symmetric root norm')
36+
plt.colorbar(ticks=norm.ticks(),format='%.3g')
37+
plt.xlim(0,16*np.pi)
38+
plt.ylim(-1,1)
39+
40+
plt.figure(figsize=figsize)
41+
norm=colors.PositiveRootNorm(vmin=0,orderpos=5)
42+
plt.pcolormesh(x,y,data,cmap=cmap,norm=norm)
43+
plt.title('Positive root norm')
44+
plt.colorbar(ticks=norm.ticks(),format='%.3g')
45+
plt.xlim(0,16*np.pi)
46+
plt.ylim(-1,1)
47+
48+
plt.figure(figsize=figsize)
49+
norm=colors.NegativeRootNorm(vmax=0,orderneg=5)
50+
plt.pcolormesh(x,y,data,cmap=cmap,norm=norm)
51+
plt.title('Negative root norm')
52+
plt.colorbar(ticks=norm.ticks(),format='%.3g')
53+
plt.xlim(0,16*np.pi)
54+
plt.ylim(-1,1)

0 commit comments

Comments
 (0)