2016-10-25 8 views
5

मैं पाइथन में ग्राफ उत्पन्न करने के लिए प्लॉटली ऑफ़लाइन उपयोग कर रहा हूं।प्रारूप पीएनजी में प्लॉटली ऑफ़लाइन ग्राफ को कैसे सहेजना है?

नीचे प्रलेखन के अनुसार,

https://plot.ly/python/offline/

यहाँ मेरी कोड है, जो पूरी तरह से सी उत्पन्न करता है: /tmp/test_plot.html फ़ाइल।

import plotly.offline as offline 

offline.init_notebook_mode() 

offline.plot({'data': [{'y': [4, 2, 3, 4]}], 
       'layout': {'title': 'Test Plot', 
          'font': dict(family='Comic Sans MS', size=16)}}, 
      auto_open=False, filename='C:/tmp/test_plot') 

मैं इस ग्राफ को HTML के बजाय png के रूप में कैसे सहेज सकता हूं?

उत्तर

5

offline.plot विधि image='png और image_filename='image_file_name' फ़ाइल को png के रूप में सहेजने के लिए विशेषताएँ हैं।

offline.plot({'data': [{'y': [4, 2, 3, 4]}], 
       'layout': {'title': 'Test Plot', 
         'font': dict(family='Comic Sans MS', size=16)}}, 
      auto_open=True, image = 'png', image_filename='plot_image', 
      output_type='file', image_width=800, image_height=600, 
      filename='temp-plot.html', validate=False) 

offline.py अंदर या plotly ऑनलाइन और विवरण देखें।

हालांकि, एक चेतावनी यह है कि, क्योंकि आउटपुट छवि HTML से जुड़ी हुई है, यह ब्राउज़र में खुल जाएगी और छवि फ़ाइल को सहेजने के लिए अनुमति मांगेगी। आप इसे अपने ब्राउज़र सेटिंग्स में बंद कर सकते हैं।

enter image description here

वैकल्पिक रूप से, आपको कम से plotly देखने के लिए plot_mpl का उपयोग कर रूपांतरण matplotlib कर सकते हैं।
निम्न उदाहरण से offline.py

from plotly.offline import init_notebook_mode, plot_mpl 
    import matplotlib.pyplot as plt 

    init_notebook_mode() 

    fig = plt.figure() 
    x = [10, 15, 20, 25, 30] 
    y = [100, 250, 200, 150, 300] 
    plt.plot(x, y, "o") 

    plot_mpl(fig) 
    # If you want to to download an image of the figure as well 
    plot_mpl(fig, image='png') 
+0

मैं, एक त्रुटि हो रही है, जबकि तर्क में छवि डालने:

यहाँ कोड है। plot_mpl() को एक अप्रत्याशित कीवर्ड तर्क 'छवि'/साजिश() को एक अप्रत्याशित कीवर्ड तर्क 'छवि' मिला है। संस्करण 1.9.6 पर चल रहा है। –

+0

मैंने प्लॉटली संस्करण 1.12.9 में अपडेट किया है, यह अपेक्षा के अनुसार काम करता है। एचटीएमएल एक्सेस किए बिना सीधे पीएनजी को कॉन्फ़िगर करने का कोई तरीका है? –

+0

मैं टिप्पणी करने जा रहा था कि आप अपग्रेड करना चाहते हैं, लेकिन आपने पहले से ही किया है :-)। अब तक मेरे शोध के आधार पर, मुझे ऐसा नहीं लगता है, मैंने प्लॉटली मंचों की भी जांच की है। आप वहां पूछना चाह सकते हैं। सबसे अच्छा तरीका साजिश को matplotlib पर रीडायरेक्ट करना और सहेजना है। या ऑनलाइन विधि का उपयोग करें। यहां देखें: https: //plot.ly/python/static-image-export/ –

1

आप ठीक उसी चौड़ाई और मूल छवि के रूप में ऊंचाई के साथ एक स्क्रीनशॉट को बचाने के लिए किया जाएगा, जब यह ब्राउज़र खोलने के द्वारा डाउनलोड किया जाता है PhantomJS को स्वचालित कर सकते है।

import plotly.offline as offline 
from selenium import webdriver 

offline.plot({'data': [{'y': [4, 2, 3, 4]}], 
       'layout': {'title': 'Test Plot', 
          'font': dict(size=12)}}, 
      image='svg', auto_open=False, image_width=1000, image_height=500) 

driver = webdriver.PhantomJS(executable_path="phantomjs.exe") 
driver.set_window_size(1000, 500) 
driver.get('temp-plot.html') 
driver.save_screenshot('my_plot.png') 

#Use this, if you want a to embed this .png in a HTML file 
#bs_img = driver.get_screenshot_as_base64() 
संबंधित मुद्दे