-
-
Notifications
You must be signed in to change notification settings - Fork 7.9k
Example: remove overlapping text from image_masked.py #7682
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -5,15 +5,17 @@ | |
get a filled contour effect. | ||
""" | ||
from copy import copy | ||
from numpy import ma | ||
import matplotlib.colors as colors | ||
|
||
import numpy as np | ||
import matplotlib.pyplot as plt | ||
import matplotlib.colors as colors | ||
import matplotlib.mlab as mlab | ||
import numpy as np | ||
|
||
# compute some interesting data | ||
delta = 0.025 | ||
x = y = np.arange(-3.0, 3.0, delta) | ||
x0, x1 = -5, 5 | ||
y0, y1 = -3, 3 | ||
x = np.linspace(x0, x1, 500) | ||
y = np.linspace(y0, y1, 500) | ||
X, Y = np.meshgrid(x, y) | ||
Z1 = mlab.bivariate_normal(X, Y, 1.0, 1.0, 0.0, 0.0) | ||
Z2 = mlab.bivariate_normal(X, Y, 1.5, 0.5, 1, 1) | ||
|
@@ -31,31 +33,40 @@ | |
# If you comment out all the palette.set* lines, you will see | ||
# all the defaults; under and over will be colored with the | ||
# first and last colors in the palette, respectively. | ||
Zm = ma.masked_where(Z > 1.2, Z) | ||
Zm = np.ma.masked_where(Z > 1.2, Z) | ||
|
||
# By setting vmin and vmax in the norm, we establish the | ||
# range to which the regular palette color scale is applied. | ||
# Anything above that range is colored based on palette.set_over, etc. | ||
|
||
# set up the axes | ||
fig, (ax1, ax2) = plt.subplots(1, 2) | ||
fig, (ax1, ax2) = plt.subplots(nrows=2, figsize=(6, 5.4)) | ||
|
||
# plot using 'continuous' color map | ||
im = ax1.imshow(Zm, interpolation='bilinear', | ||
cmap=palette, | ||
norm=colors.Normalize(vmin=-1.0, vmax=1.0, clip=False), | ||
origin='lower', extent=[-3, 3, -3, 3]) | ||
ax1.set_title('Green=low, Red=high, Blue=bad') | ||
fig.colorbar(im, extend='both', orientation='horizontal', shrink=0.8, ax=ax1) | ||
norm=colors.Normalize(vmin=-1.0, vmax=1.0), | ||
aspect='auto', | ||
origin='lower', | ||
extent=[x0, x1, y0, y1]) | ||
ax1.set_title('Green=low, Red=high, Blue=masked') | ||
cbar = fig.colorbar(im, extend='both', shrink=0.9, ax=ax1) | ||
cbar.set_label('uniform') | ||
for ticklabel in ax1.xaxis.get_ticklabels(): | ||
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. The x-axis could be shared, which renders these two lines unecessary. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. Actually, both axis could be shared. There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. On the contrary, axis sharing is inconsistent with the default aspect-ratio handling of imshow. This is a fundamental limitation (to avoid an over-determined system), not a matter of implementation. Since imshow is typically used in cases where unit aspect ratio is desired, I decided to leave that default and forgo the axis sharing. |
||
ticklabel.set_visible(False) | ||
|
||
# plot using 'discrete' color map | ||
# Plot using a small number of colors, with unevenly spaced boundaries. | ||
im = ax2.imshow(Zm, interpolation='nearest', | ||
cmap=palette, | ||
norm=colors.BoundaryNorm([-1, -0.5, -0.2, 0, 0.2, 0.5, 1], | ||
ncolors=256, clip=False), | ||
origin='lower', extent=[-3, 3, -3, 3]) | ||
ncolors=palette.N), | ||
aspect='auto', | ||
origin='lower', | ||
extent=[x0, x1, y0, y1]) | ||
ax2.set_title('With BoundaryNorm') | ||
fig.colorbar(im, extend='both', spacing='proportional', | ||
orientation='horizontal', shrink=0.8, ax=ax2) | ||
cbar = fig.colorbar(im, extend='both', spacing='proportional', | ||
shrink=0.9, ax=ax2) | ||
cbar.set_label('proportional') | ||
|
||
fig.suptitle('imshow, with out-of-range and masked data') | ||
plt.show() |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
👍