Как мне сделать прозрачный фон? - PullRequest
0 голосов
/ 23 июня 2019

У меня есть файл .csv, который содержит некоторые данные, где x, y, x1, y1 - это координаты, а p - это значение.Мой нижеприведенный код очень хорошо работает для построения графиков, но когда я строю данные, я получаю цвет фона, похожий на фиолетовый.Я не хочу никакого цвета на заднем плане.Я хочу, чтобы фон был Прозрачный .Моя конечная цель - перекрыть этот результат над изображением.Я новичок в Python.Любая помощь будет высоко оценена.

Ссылка для скачивания файла .csv здесь или link-2 или link-3

Я получаю результат ниже result

Мой код

import matplotlib.pyplot as plt
from scipy import ndimage
import numpy as np
import pandas as pd
from skimage import transform
from PIL import Image
import cv2

x_dim=1200
y_dim=1200

# Read CSV 
df = pd.read_csv("flower_feature.csv")

# Create numpy array of zeros os same size
array = np.zeros((x_dim, y_dim), dtype=np.uint8)

for index, row in df.iterrows():
    x = np.int(row["x"])
    y = np.int(row["y"])
    x1 = np.int(row["x1"])
    y1 = np.int(row["y1"])
    p = row["p"]
    array[x:x1,y:y1] = p

map = ndimage.filters.gaussian_filter(array, sigma=16)
plt.imshow(map)
plt.show()

Asсогласно предложению Гассена, я получаю результаты ниже.Я все еще не получаю прозрачный фон.

Когда альфа = 0

alpha=0

Когда альфа = 0,5

alpha =0.5

При альфа = 1

alpha=1

Ответы [ 2 ]

0 голосов
/ 24 июня 2019

Я решил эту проблему, замаскировав значения, где значения == 0. Код будет

from mpl_toolkits.axes_grid1 import make_axes_locatable

masked_data = np.ma.masked_where(map == 0, map)

0 голосов
/ 23 июня 2019

попробуйте с этим кодом:

import matplotlib.pyplot as plt
from scipy import ndimage
import numpy as np
import pandas as pd


x_dim=1200
y_dim=1200

# Read CSV 
df = pd.read_csv("/home/rosafi/Downloads/flower_feature.csv")

# Create numpy array of zeros os same size
array = np.ones((x_dim, y_dim), dtype=np.uint8)

for index, row in df.iterrows():
    x = np.int(row["x"])
    y = np.int(row["y"])
    x1 = np.int(row["x1"])
    y1 = np.int(row["y1"])
    p = row["p"]
    array[x:x1,y:y1] = p

map = ndimage.filters.gaussian_filter(array, sigma=16)
map = np.ma.masked_where(map == 0, map)
plt.imshow(map)
plt.show()

вывод: enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...