Как применить гауссово размытие к фигуре в matplotlib
?
Чтобы быть более точным, у меня на рисунке matplotlib
изображено следующее изображение:
![enter image description here](https://i.stack.imgur.com/2vxMJ.png)
Который был произведен со следующим кодом:
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_filter
x = np.linspace(0, 3*np.pi, 100)
ys = []
for i in range(20):
ys.append(np.sin(x) + (np.random.rand(100)-0.5)*np.random.rand())
new_y = ys[0]
new_x = x
for i in range(1, 20):
new_x = np.concatenate([new_x, x])
new_y = np.concatenate([new_y, ys[i]])
fig, ax = plt.subplots()
ax.hist2d(new_x, new_y, bins=50, cmap='inferno')
plt.show()
Как можно нарисовать размытую по Гауссу версию этого изображения? Любая помощь будет оценена.
Что я пробовал:
Я пытался захватить данные с рисунка, прежде чем показать его, преобразовать в массив с нолью, применить гауссово размытие к массиву с нюансами, а затем нарисовать размытый массив, используя plt.imshow
.
import numpy as np
import matplotlib.pyplot as plt
from scipy.ndimage import gaussian_filter
x = np.linspace(0, 3*np.pi, 100)
ys = []
for i in range(20):
ys.append(np.sin(x) + (np.random.rand(100)-0.5)*np.random.rand())
new_y = ys[0]
new_x = x
for i in range(1, 20):
new_x = np.concatenate([new_x, x])
new_y = np.concatenate([new_y, ys[i]])
fig, ax = plt.subplots()
ax.hist2d(new_x, new_y, bins=50, cmap='inferno')
fig.canvas.draw()
data = np.fromstring(fig.canvas.tostring_rgb(), dtype=np.uint8, sep='')
data = data.reshape(fig.canvas.get_width_height()[::-1] + (3,))
data2 = gaussian_filter(data, sigma=5)
plt.imshow(data2)
plt.pause(5)
Однако это, по-видимому, никак не влияет на полученное изображение.