乡下人产国偷v产偷v自拍,国产午夜片在线观看,婷婷成人亚洲综合国产麻豆,久久综合给合久久狠狠狠9

  • <output id="e9wm2"></output>
    <s id="e9wm2"><nobr id="e9wm2"><ins id="e9wm2"></ins></nobr></s>

    • 分享

      python – Matplotlib只保存沒有空格的文本

       印度阿三17 2019-06-23

      所以在python中我有以下代碼,取自this answer

      import matplotlib.pyplot as plt                                                 
      import sympy                                                                    
      
      x = sympy.symbols('x')                               
      y = 1   sympy.sin(sympy.sqrt(x**2   20))                                         
      lat = sympy.latex(y)                                                            
      
      #add text                                 
      plt.text(0, 0.6, r"$%s$" % lat, fontsize = 50)                                  
      
      #hide axes                                                                      
      fig = plt.gca()                                                                 
      fig.axes.get_xaxis().set_visible(False)                                         
      fig.axes.get_yaxis().set_visible(False)                                         
      plt.savefig('out.png', bbox_inches='tight', pad_inches=0)                                                        
      plt.show()
      

      這將打開文本并將其導(dǎo)出到png文件中:

      Image Export 1

      但這包括超出框架外的空白的空白.您將如何裁剪圖像以僅導(dǎo)出文本,如邊界框,如此?

      enter image description here

      解決方法:

      以下不是一個完美的解決方案,但它希望能給你一些關(guān)于如何進(jìn)步的想法:

      import matplotlib.pyplot as plt
      import sympy
      
      x = sympy.symbols('x')
      y = 1   sympy.sin(sympy.sqrt(x**2   2))
      lat = sympy.latex(y)
      
      fig = plt.figure()
      renderer = fig.canvas.get_renderer()
      t = plt.text(0.001, 0.001, r"$%s$" % lat, fontsize = 50)
      wext = t.get_window_extent(renderer=renderer)
      
      fig.set_size_inches(wext.width / 65, wext.height / 40, forward=True)
      fig.patch.set_facecolor('white')
      plt.axis('off')
      plt.tight_layout()
      plt.savefig('out.png', bbox_inches='tight', pad_inches=0)
      plt.show()
      

      您可以通過使用當(dāng)前渲染器獲取窗口范圍來確定文本大小.然后還可以手動指定圖形尺寸.我雖然不確定正確的方法來轉(zhuǎn)換兩者之間.請注意,我為圖像添加了邊框,以便您可以看到剩余填充量:

      matplotlib output

      作為解決此問題的可能方法,以下方法僅使用Python的PIL庫在保存之前自動裁剪圖像:

      import io
      from PIL import Image, ImageOps
      import matplotlib.pyplot as plt
      import sympy
      
      x = sympy.symbols('x')
      y = 5 /sympy.sqrt(1   sympy.sin(sympy.sqrt(x**2   2))) 
      lat = sympy.latex(y)
      
      fig = plt.figure()
      t = plt.text(0.001, 0.001, r"$%s$" % lat, fontsize = 50)
      
      fig.patch.set_facecolor('white')
      plt.axis('off')
      plt.tight_layout()
      
      with io.BytesIO() as png_buf:
          plt.savefig(png_buf, bbox_inches='tight', pad_inches=0)
          png_buf.seek(0)
          image = Image.open(png_buf)
          image.load()
          inverted_image = ImageOps.invert(image.convert("RGB"))
          cropped = image.crop(inverted_image.getbbox())
          cropped.save('out.png')
      
      來源:https://www./content-1-260551.html

        本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,所有內(nèi)容均由用戶發(fā)布,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式、誘導(dǎo)購買等信息,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊一鍵舉報。
        轉(zhuǎn)藏 分享 獻(xiàn)花(0

        0條評論

        發(fā)表

        請遵守用戶 評論公約

        類似文章 更多