def test_contourf_decreasing_levels(): # github issue 5477. z = [[0.1, 0.3], [0.5, 0.7]] plt.figure() with pytest.raises(ValueError): contourf(plt.gca(), z, [1.0, 0.0]) # Legacy contouring algorithm gives a warning rather than raising an error, # plus a DeprecationWarning. with warnings.catch_warnings(record=True) as w: warnings.simplefilter("always") contourf(plt.gca(), z, [1.0, 0.0], corner_mask='legacy') assert len(w) == 2
def test_corner_mask(): n = 60 mask_level = 0.95 noise_amp = 1.0 np.random.seed([1]) x, y = np.meshgrid(np.linspace(0, 2.0, n), np.linspace(0, 2.0, n)) z = np.cos(7*x)*np.sin(8*y) + noise_amp*np.random.rand(n, n) mask = np.where(np.random.rand(n, n) >= mask_level, True, False) z = np.ma.array(z, mask=mask) for corner_mask in [False, True]: fig = plt.figure() contourf(plt.gca(), z, corner_mask=corner_mask)
def test_given_colors_levels_and_extends(): _, axes = plt.subplots(2, 4) data = np.arange(12).reshape(3, 4) colors = ['red', 'yellow', 'pink', 'blue', 'black'] levels = [2, 4, 8, 10] for i, ax in enumerate(axes.flatten()): filled = i % 2 == 0. extend = ['neither', 'min', 'max', 'both'][i // 2] if filled: # If filled, we have 3 colors with no extension, # 4 colors with one extension, and 5 colors with both extensions first_color = 1 if extend in ['max', 'neither'] else None last_color = -1 if extend in ['min', 'neither'] else None c = contourf(ax, data, colors=colors[first_color:last_color], levels=levels, extend=extend) else: # If not filled, we have 4 levels and 4 colors c = contour(ax, data, colors=colors[:-1], levels=levels, extend=extend) plt.colorbar(c, ax=ax)
def test_contour_datetime_axis(): fig = plt.figure() fig.subplots_adjust(hspace=0.4, top=0.98, bottom=.15) base = datetime.datetime(2013, 1, 1) x = np.array([base + datetime.timedelta(days=d) for d in range(20)]) y = np.arange(20) z1, z2 = np.meshgrid(np.arange(20), np.arange(20)) z = z1 * z2 plt.subplot(221) contour(plt.gca(), x, y, z) plt.subplot(222) contourf(plt.gca(), x, y, z) x = np.repeat(x[np.newaxis], 20, axis=0) y = np.repeat(y[:, np.newaxis], 20, axis=1) plt.subplot(223) contour(plt.gca(), x, y, z) plt.subplot(224) contourf(plt.gca(), x, y, z) for ax in fig.get_axes(): for label in ax.get_xticklabels(): label.set_ha('right') label.set_rotation(30)
def test_contourf_symmetric_locator(): # github issue 7271 z = np.arange(12).reshape((3, 4)) locator = plt.MaxNLocator(nbins=4, symmetric=True) cs = contourf(plt.gca(), z, locator=locator) assert_array_almost_equal(cs.levels, np.linspace(-12, 12, 5))