[英]how to display matplotlib plots on local machine?
我在遠程服務器上遠程運行ipython。 我使用serveraddress:8888 / etc訪問它來為我的筆記本編寫代碼。
當我使用matplotlib時,這些圖是內聯的。 有沒有辦法遠程發送數據,以便打開繪圖窗口? 我想在我的本地機器上matplotlib上的整個交互式環境以及服務器機器上的所有數字運算? 這是一個非常基本的東西....但不知何故,經過谷歌相當長一段時間后,我無法弄明白。
即將發布的版本(1.4.0,將於2014年8月底發布,發布候選版本可用)將隨nbagg
后端一起提供,該后端提供交互式數據,無需去本地客戶或使用d3。 您在筆記本中所需要做的就是:
import matplotlib
matplotlib.use('nbagg')
from matplotlib import pyplot as plt
然后去繪制
plt.plot(range(3))
plt.show()
如果您現在想要嘗試這個,請從源代碼構建或查看其中一個候選版本。
使用nbagg
和mpld3 / bokeh有兩個主要區別。
首先,您沒有跨庫接口的接口(或學習js!)。 我的理解是,他們都創造了一個人物,廢棄它(這並不完美,因為mpl不是為了讓這一點變得容易而設計的)。 使用nbagg鼠標和鍵盤回調應該沒有翻譯,我認為他們目前不能導出到d3。
第二個是nbagg所有渲染都發生在服務器上,基於d3的庫所有數據必須天真地運送到瀏覽器(散景正在努力使這個更聰明,只發送你可以看到有用的數據解析度)。 對於nbagg
,唯一能夠通過網絡nbagg
的是png deltas。
有幾種可能性
如果您的遠程計算機有點不合適,您可以使用X Windows(然后您的會話在遠程計算機上並顯示在本地計算機上)
mpld3
bokeh
和iPython筆記本
nbagg
matplotlib
后端
備選方案#1要求您在計算機上安裝X服務器,並在兩台計算機之間建立連接(可能通過ssh進行隧道連接等)。因此,這取決於操作系統,性能取決於兩台計算機之間的連接。
替代品#2和#3是非常新的,但很有希望。 它們有不同的方法, mpl3d
可以使用標准的matplotlib
繪圖命令,但是對於大型數據集, bokeh
可能更有用。
備選方案#4可能是最終解決方案(請參閱tcaswell
的評論),但尚未使用matplotlib
的開發版本(即可能存在一些安裝挑戰)尚未提供。 另一方面,如果你能屏住呼吸一周,1.4.0就會消失。
你想獲得常規(可縮放)繪圖窗口,對吧? 我認為你不能在同一個內核中執行它,不幸的是,你不能從內聯切換到qt等因為后端已被選中:你對matplotlib.use()
調用總是在pylab
之前。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.