Can I do something like imsave () with text overlay?

I use it imsave()sequentially to make a lot of PNGs that I will combine as AVI, and I would like to add text annotations. I use ImageJ to create an AVI or GIF.

I don't need axes, numbers, borders or anything else, just a color image (for example imsave()) with text (and possibly arrows) inside. They will change in turn. Sorry for using the jet.

I could use it savefig()with ticks and then do the cropping as post processing, but is there a more convenient, direct or “matplotlibithic” way to do this, which would not be so difficult on my hard drive? (the final thing will be pretty big).

enter image description here

, :

import numpy as np
import matplotlib.pyplot as plt

nx, ny = 101, 101

phi   = np.zeros((ny, nx), dtype = 'float')
do_me = np.ones_like(phi, dtype='bool')

x0, y0, r0 = 40, 65, 12

x = np.arange(nx, dtype = 'float')[None,:]
y = np.arange(ny, dtype = 'float')[:,None]
rsq = (x-x0)**2 + (y-y0)**2

circle = rsq <= r0**2

phi[circle] = 1.0
do_me[circle] = False

do_me[0,:], do_me[-1,:], do_me[:,0], do_me[:,-1] = False, False, False, False

n, nper = 100, 100
phi_hold = np.zeros((n+1, ny, nx))
phi_hold[0] = phi

for i in range(n):

    for j in range(nper):
        phi2 = 0.25*(np.roll(phi,  1, axis=0) +
                     np.roll(phi, -1, axis=0) +
                     np.roll(phi,  1, axis=1) +
                     np.roll(phi, -1, axis=1) )

        phi[do_me] = phi2[do_me]

    phi_hold[i+1] = phi

change = phi_hold[1:] - phi_hold[:-1]

places = [(32, 20), (54,25), (11,32), (3, 12)]

plt.figure()
plt.imshow(change[50])
for (x, y) in places:
    plt.text(x, y, "WOW", fontsize=16)
plt.text(5, 95, "Don't use Jet!", color="white", fontsize=20)
plt.show()
+1
1

1

, , , , - , figsize ( ), :

import numpy as np
import matplotlib.pyplot as plt

test_image = np.eye(100)
fig = plt.figure(figsize=(4,4))
ax = plt.axes(frameon=False, xticks=[],yticks=[])
ax.imshow(test_image)
plt.savefig('test.png', bbox_inches='tight', pad_inches=0)

, imshow test_image, , . , , - .

, () , figsize .

, figsize ( , ), , ...

2

, , figsize , :

import numpy as np
import matplotlib.pyplot as plt

test_image = np.eye(100)
fig = plt.figure(figsize=(4,4))
ax = fig.add_axes([0,0,1,1])
ax.imshow(test_image)
plt.savefig('test.png')

, savefig DPI (100 ), - figsize - x y . dpi savefig.

, ( plt.show() plt.savefig ), ( figsize) DPI, (80 ). , dpi plt.figure().

+1

Source: https://habr.com/ru/post/1610681/


All Articles