Squeak.ru - шаблоны программирования

как построить более двух графиков, используя цикл for в Python?

введите описание изображения здесь Я пытаюсь создать 4 графика, используя цикл for. Но я не знаю, как это сделать. как я могу отобразить графики по порядку? или сохранить рисунок как png? Вот мой код:

import matplotlib.pyplot as plt
import matplotlib.cm as cm
from astropy.io import fits
import pyregion
import glob
# read in the image
xray_name = glob.glob("*.fits")
for filename in xray_name:
    f_xray = fits.open(filename)
    #name = file_name[:-len('.fits')] 
try:
    from astropy.wcs import WCS
    from astropy.visualization.wcsaxes import WCSAxes
    wcs = WCS(f_xray[0].header)
    fig = plt.figure()
    ax =  plt.subplot(projection=wcs)
    fig.add_axes(ax)
except ImportError:
  ax = plt.subplot(111)
ax.imshow(f_xray[0].data, cmap="summer", vmin=0., vmax=0.00038, origin="lower")
reg_name=glob.glob("*.reg")  
for i in reg_name:
    r =pyregion.open(i).as_imagecoord(header=f_xray[0].header)
    from pyregion.mpl_helper import properties_func_default
    # Use custom function for patch attribute
def fixed_color(shape, saved_attrs):
    attr_list, attr_dict = saved_attrs
    attr_dict["color"] = "red"
    kwargs = properties_func_default(shape, (attr_list, attr_dict))
    return kwargs
# select region shape with tag=="Group 1"
r1 = pyregion.ShapeList([rr for rr in r if rr.attr[1].get("tag") == "Group 1"])
patch_list1, artist_list1 = r1.get_mpl_patches_texts(fixed_color)
r2 = pyregion.ShapeList([rr for rr in r if rr.attr[1].get("tag") != "Group 1"])
patch_list2, artist_list2 = r2.get_mpl_patches_texts()
for p in patch_list1 + patch_list2:
    ax.add_patch(p)
    #for t in artist_list1 + artist_list2:
    #    ax.add_artist(t)
    plt.show()

цель кода состоит в том, чтобы построить область на изображении файла соответствия, если есть способ изменить цвет фонового изображения на белый и более яркий (центральная область), как это было бы хорошо.Спасибо.

30.11.2017

  • пытаюсь сделать 4 сюжета где? Пожалуйста, изучите существующие примеры подзаговоров в документации mpl, они очень информативны. PS. plt.show предназначен для использования только один раз, а не в цикле, для обновлений следует использовать plt.draw. 30.11.2017
  • если мы думаем о сюжете как о рисунке на листе бумаги или как о окне сюжета. Если вам нужен один график для каждого листа, plt.figure создаст новый лист для рисования, поэтому где-то вам понадобится 4-х планшетный рисунок и связанная с ним ось для выполнения отдельных черчений. кстати, в вашем коде не видно, какие разные данные вы хотите поместить в разные графики, мне кажется, что у вас есть данные только для одного графика. 30.11.2017
  • ahed87, я добавил изображение выше, я понял все правильно.Но остальные три изображения они отображаются только без двух полей. Я загружаю код с помощью .reg, который охватывает эти прямоугольные поля.plus, если есть способ изменить фон как белый и центральный (самый яркий) как черный. когда вы перемещаете попытку ... кроме 4 пробелов, вы получаете 4 изображения.Спасибо 30.11.2017

Ответы:


1

Вы используете цветовую карту "лето" с указанными ограничениями. Мне непонятно, чего вы хотите достичь, поскольку опубликованное вами изображение выглядит более или менее цифровым черно-белым пиксельным образом.

В matplotlib есть встроенные цветовые карты, и все они имеют обратный двойник.

'summer' имеет перевернутый близнец с 'summer_r'

Это можно найти в документации mpl в нескольких местах, например пример цветовой карты, или SO отвечает, например, this.

Надеюсь, это то, что вы ищете. В будущем при публикации такого кода постарайтесь удалить все нерелевантные части, а также как минимум предоставить описание формата / типа данных. Лучше всего также включить небольшую выборку данных и их структуру. Кусок кода работает только вместе с набором данных, поэтому совместное использование только одного - это только половина формулировки проблемы.

30.11.2017
  • Я согласен с тем, чтобы поделиться данными, но это слишком много. Что касается цветовой карты, да, я изменил ее на Greys_r. Я уже понимаю проблему, спасибо 30.11.2017
  • Новые материалы

    Угловая структура архитектуры
    Обратите внимание, что эта статья устарела, я решил создать новую с лучшей структурой и с учетом автономных компонентов: https://medium.com/@marekpanti/angular-standalone-architecture-b645edd0d54a..

    «Данные, которые большинство людей используют для обучения своих моделей искусственного интеллекта, поставляются со встроенным…
    Первоначально опубликовано HalkTalks: https://hacktown.com.br/blog/blog/os-dados-que-a-maioria-das-pessoas-usa-para-treinar-seus-modelos-de-inteligencia-artificial- ja-vem-com-um-vies-embutido/..

    Сильный ИИ против слабого ИИ: различия парадигм искусственного интеллекта
    В последние годы изучению и развитию искусственного интеллекта (ИИ) уделяется большое внимание и прогресс. Сильный ИИ и Слабый ИИ — две основные парадигмы в области искусственного интеллекта...

    Правильный способ добавить Firebase в ваш проект React с помощью React Hooks
    React + Firebase - это мощная комбинация для быстрого и безопасного создания приложений, от проверки концепции до массового производства. Раньше (знаете, несколько месяцев назад) добавление..

    Создайте API с помощью Python FastAPI
    Создание API с помощью Python становится очень простым при использовании пакета FastAPI. После установки и импорта вы можете создать приложение FastAPI и указать несколько конечных точек. Каждой..

    Веселье с прокси-сервером JavaScript
    Прокси-серверы JavaScript — это чистый сахар, если вы хотите создать некоторую общую логику в своих приложениях, чтобы облегчить себе жизнь. Вот один пример: Связь клиент-сервер Мы..

    Получить бесплатный хостинг для разработчиков | Разместите свой сайт за несколько шагов 🔥
    Статические веб-сайты — это веб-страницы с фиксированным содержанием и его постоянным содержанием. Но теперь статические сайты также обрабатывают динамические данные с помощью API и запросов...