Python Datashader пытается наложить изображения друг на друга ⇐ Python
Python Datashader пытается наложить изображения друг на друга
Я новичок в шейдере данных, занимаюсь этим как вводным проектом и столкнулся с проблемой. Я пытаюсь построить числа от 1 до 10 000 по спирали, как в видео 3b1b, но я хочу, чтобы простые числа были желтыми, а остальные — синими, чтобы улучшить общую визуализацию. Я сделал это, попытавшись наложить простые числа желтого цвета поверх ранее созданного изображения всех чисел по спирали синего цвета. Однако когда я это делаю, я получаю сообщение об ошибке: Невозможно выделить 1,49 ТиБ для массива с формой (800, 800, 800, 800) и типом данных uint32. Мой код примерно следующий (я опустил несвязанные части, но, возможно, я пропустил импорт или список):
импортировать Sympy импортировать панд как pd из математики импортировать грех, потому что импортировать шейдер данных как ds импортировать datashader.composite как ops из datashader.utils import Export_image #Сгенерируем список простых чисел простые числа = [i для i в диапазоне (10000), если Sympy.isprime(i)] #генерируем полярные координаты x и y allx = [cos(num) * num * 1/10000 для числа в диапазоне (10000)] союзник = [sin(num) * num * 1/10000 для числа в диапазоне (10000)] xp = [cos(num) * num * 1/10000 для числа в диапазоне (10000)] yp = [sin(num) * num * 1/10000 для числа в диапазоне (10000)] #Сохраняем списки в отдельные фреймы данных primedf = pd.DataFrame({'Xp': xp, "Yp": yp}) df = pd.DataFrame({'Allx':allx, 'Ally':ally}) #создаем холст для печати объектов cvs = ds.Canvas(plot_width=800,plot_height=800) #создать совокупные точки, которые используются для создания изображения agg = cvs.points(df, "Allx", "Союзник") #генерируем первое изображение img = ds.tf.shade(agg) #Проделайте то же самое для простых наборов aggprime = cvs.points(primedf, "Xp", "Yp") imgprime = ds.tf.shade(aggprime, cmap="yellow") #Теперь наложите imgprime на img, это вызывает ошибку img * imgprime Я попробовал несколько других методов, включая экспорт в png и чтение с помощью iio/cv2, gnuplot, и я сделал что-то, о чем забыл, с datashader.composite.source.ops, и ни один из них, похоже, не работает. что заставляет меня думать, что я придерживаюсь совершенно неправильного подхода. Если кто-нибудь посоветует, как это сделать, буду очень благодарен.
Я новичок в шейдере данных, занимаюсь этим как вводным проектом и столкнулся с проблемой. Я пытаюсь построить числа от 1 до 10 000 по спирали, как в видео 3b1b, но я хочу, чтобы простые числа были желтыми, а остальные — синими, чтобы улучшить общую визуализацию. Я сделал это, попытавшись наложить простые числа желтого цвета поверх ранее созданного изображения всех чисел по спирали синего цвета. Однако когда я это делаю, я получаю сообщение об ошибке: Невозможно выделить 1,49 ТиБ для массива с формой (800, 800, 800, 800) и типом данных uint32. Мой код примерно следующий (я опустил несвязанные части, но, возможно, я пропустил импорт или список):
импортировать Sympy импортировать панд как pd из математики импортировать грех, потому что импортировать шейдер данных как ds импортировать datashader.composite как ops из datashader.utils import Export_image #Сгенерируем список простых чисел простые числа = [i для i в диапазоне (10000), если Sympy.isprime(i)] #генерируем полярные координаты x и y allx = [cos(num) * num * 1/10000 для числа в диапазоне (10000)] союзник = [sin(num) * num * 1/10000 для числа в диапазоне (10000)] xp = [cos(num) * num * 1/10000 для числа в диапазоне (10000)] yp = [sin(num) * num * 1/10000 для числа в диапазоне (10000)] #Сохраняем списки в отдельные фреймы данных primedf = pd.DataFrame({'Xp': xp, "Yp": yp}) df = pd.DataFrame({'Allx':allx, 'Ally':ally}) #создаем холст для печати объектов cvs = ds.Canvas(plot_width=800,plot_height=800) #создать совокупные точки, которые используются для создания изображения agg = cvs.points(df, "Allx", "Союзник") #генерируем первое изображение img = ds.tf.shade(agg) #Проделайте то же самое для простых наборов aggprime = cvs.points(primedf, "Xp", "Yp") imgprime = ds.tf.shade(aggprime, cmap="yellow") #Теперь наложите imgprime на img, это вызывает ошибку img * imgprime Я попробовал несколько других методов, включая экспорт в png и чтение с помощью iio/cv2, gnuplot, и я сделал что-то, о чем забыл, с datashader.composite.source.ops, и ни один из них, похоже, не работает. что заставляет меня думать, что я придерживаюсь совершенно неправильного подхода. Если кто-нибудь посоветует, как это сделать, буду очень благодарен.
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Как я могу наложить два фона друг на друга, чтобы они не конфликтовали в Tailwind?
Anonymous » » в форуме CSS - 0 Ответы
- 25 Просмотры
-
Последнее сообщение Anonymous
-