Подтвердить что ты не робот

В Matplotlib есть ли способ узнать список доступных форматов вывода

Согласно документации Matplotlib, matplotlib.figure.save_fig принимает необязательный аргумент format (см. matplotlib.figure documentation).

Эти параметры принимают "одно из расширений файлов, поддерживаемых активным бэкэнд" (как указано в официальной документации).

Моя точка зрения: как узнать, для конкретного бэкэнд, список поддерживаемых расширений?

Список доступных бэкэнд доступен через matplotlib.rcsetup.all_backends. Эти бэкэнд доступны в matplotlib.backends, но я не нахожу способ получить поддерживаемые расширения.

4b9b3361

Ответ 1

Если вы создаете фигуру, вы можете получить доступный поддерживаемый формат файла с помощью объекта canvas:

import matplotlib.pyplot as plt
fig = plt.figure()

print fig.canvas.get_supported_filetypes()

>>> {
   'svgz': 'Scalable Vector Graphics', 
   'ps': 'Postscript', 
   'emf': 'Enhanced Metafile', 
   'rgba': 'Raw RGBA bitmap',
   'raw': 'Raw RGBA bitmap',
   'pdf': 'Portable Document Format', 
   'svg': 'Scalable Vector Graphics', 
   'eps': 'Encapsulated Postscript', 
   'png': 'Portable Network Graphics' 
}

и он отобразит все форматы, в которых вы можете вывести текущий объект.

Ответ 2

Класс FigureCanvasBase, расположенный в каждом сервере, имеет метод get_supported_filetypes.

Для backend_agg:

figure = matplotlib.figure.Figure()
fcb = matplotlib.backends.backend_agg.FigureCanvasBase(figure)
supported_file_types = fcb.get_supported_filetypes()

supported_file_types содержит:

{'emf': 'Enhanced Metafile',
 'eps': 'Encapsulated Postscript',
 'pdf': 'Portable Document Format',
 'png': 'Portable Network Graphics',
 'ps': 'Postscript',
 'raw': 'Raw RGBA bitmap',
 'rgba': 'Raw RGBA bitmap',
 'svg': 'Scalable Vector Graphics',
 'svgz': 'Scalable Vector Graphics'}

Один оставшийся вопрос.... matplotlib.get_backend() возвращает "agg". Есть ли более простой способ прямого указания на правильный бэкэнд-модуль?

Ответ 3

Вот список рендереров и типов файлов: http://matplotlib.sourceforge.net/faq/installing_faq.html#what-is-a-backend Кроме того, отдельные бэкенды имеют get_supported_filetypes метод в своем соответствующем классе FigureCanvas{backend-name}, который предоставляет список поддерживаемых форматов файлов.