2011-09-30 13 views
25

Matplotlib प्रलेखन के अनुसार, matplotlib.figure.save_fig वैकल्पिक तर्क format (matplotlib.figure documentation देखें) के अनुसार उपलब्ध आउटपुट प्रारूप की सूची जानने का कोई तरीका है।Matplotlib में, उपलब्ध आउटपुट प्रारूप

यह पैरामीटर 'सक्रिय बैकएंड द्वारा समर्थित फ़ाइल एक्सटेंशन में से एक' लेता है (जैसा कि आधिकारिक दस्तावेज़ीकरण द्वारा कहा गया है)।

मेरा बिंदु है: विशिष्ट बैकएंड के लिए, कैसे समर्थित एक्सटेंशन की सूची के बारे में जानना है?

उपलब्ध बैकएंड की सूची matplotlib.rcsetup.all_backends के माध्यम से सुलभ है। ये बैकएंड matplotlib.backends में उपलब्ध हैं, लेकिन मुझे समर्थित एक्सटेंशन पुनर्प्राप्त करने का कोई तरीका नहीं मिला है।

उत्तर

33

आप एक आंकड़ा बनाते हैं, तो आप कैनवास वस्तु के साथ उपलब्ध समर्थित फ़ाइल स्वरूप प्राप्त कर सकते हैं:

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' 
} 

और यह सभी स्वरूपों है जिसमें आप अपने वर्तमान उत्पादन वस्तु कर सकते हैं सूची जाएगा।

+0

अच्छा एक ... चित्र वस्तु पर इस कैनवास संपत्ति को नहीं देखा। – ohe

+0

अचूक जादू, यह जलाता है क्योंकि यह ठीक हो जाता है। इसके लिए धन्यवाद! मेरा Matplotlib उपकरण बेल्ट अब स्तर ऊपर है। –

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"। सही बैकएंड मॉड्यूल को सीधे इंगित करने का कोई आसान तरीका है?

+0

'matplotlib.get_backend()' सामान्य तरीका है (इसके बारे में क्या आसान नहीं है?)। यदि आप बैकएंड को बदलना चाहते हैं, तो आप इसे matlotlib.use' के साथ कर सकते हैं या matplotlibrc फ़ाइल में सेटिंग कर सकते हैं, 'matplotlib.matplotlib_fname()' आपको कॉन्फ़िगरेशन फ़ाइल स्थान बताएगा। – wim

+0

'matplotlib.get_backend()' वास्तविक बैकएंड मॉड्यूल की बजाय कच्चे 'str' को वापस करने से अधिकांश उपयोग मामलों के लिए कार्यात्मक रूप से बेकार है। हां, आप _can_ स्पष्ट रूप से 'getattr (matplotlib.backends, 'backend_' + matplotlib.get_backend()। निचला()) 'छद्म सफलता के लिए अपना रास्ता - ** लेकिन आपको यह नहीं करना चाहिए। ** उस तरह का रिज़ॉर्ट करना दर्दनाक हैकरी का केवल अंतिम उपाय होना चाहिए। –

0

यहाँ दाता और फ़ाइल प्रकार की एक सूची है: http://matplotlib.sourceforge.net/faq/installing_faq.html#what-is-a-backend इसके अलावा, अलग-अलग बैकेंड कि समर्थित फ़ाइल स्वरूपों की एक सूची देता है उनके संबंधित FigureCanvas{backend-name} कक्षा में get_supported_filetypes विधि है।

संबंधित मुद्दे