簡體   English   中英

在Jupyter Notebook中同時使用Matplotlib內聯和QT

[英]Use both matplotlib inline and qt in jupyter notebook

我正在使用Jupyter(與IPython一起使用)來分析研究數據以及導出數據。 我真的很喜歡Jupyter提供的筆記本方法:長時間瀏覽實驗后,我可以輕松地看到數字與數據的對應關系。 當然,這是使用內聯后端。

但是,當我想探索新數據時,我更喜歡使用QT后端。 它比嵌入式方法快,並且可以輕松縮放,放大和縮小,並在左下角很好地顯示X和Y坐標。 此外,我可以使用QT后端來確定要在串聯后端中使用的良好x和y限制。

我已經嘗試過使用%matplotlib notebook魔術,但是它太慢了。 對於某些實驗,我正在繪制〜500個光譜(每個光譜由〜1000個數據點組成),這在嵌入式后端中已經很慢了。 即使數據點較少,筆記本后端也使用起來太慢。

因此,每當我繪圖時,我都想同時使用QT后端和內聯后端。 (因此,每當我執行繪制數據的單元格時,它都應顯示嵌入式圖像並彈出QT后端窗口)。 這樣,我仍然可以很好地了解筆記本中的繪圖,同時還可以輕松瀏覽數據。 有沒有辦法做到這一點?

這使您可以內聯並通過QtConsole使用plotSin函數運行QtConsole。

import matplotlib
import numpy as np
import matplotlib.pyplot as plt
%matplotlib inline  

..

def plotChirp(Type, Exp, Rand):

    # Orignal Chirp Funciton From:
    # http://stackoverflow.com/questions/19410042/how-to-make-ipython-notebook-matplotlib-plot-inline
    x = np.linspace(0, 3*np.pi, Rand)
    plt.plot(x, np.sin(x**int(Exp)))
    plt.title('A simple chirp ' + Type)
    plt.show()

..

plotChirp("A", 5, 200) # Plots inline if you choose

在此處輸入圖片說明

%connect_info # For your own connection
%qtconsole

QtConsole打開,現在您可以調用函數在外部進行繪圖。

在此處輸入圖片說明

使用%matplotlib qt可以循環打印,但不幸的是,它似乎與圖形重疊。 尋找子圖作為可能的解決方案。

%matplotlib qt
for i in range(0,2):

    if i == 0:
        plotChirp("B",1, 400)
    else:
        plotChirp("c",6, 1000)

在此處輸入圖片說明

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM