簡體   English   中英

如何在本地機器上顯示matplotlib圖?

[英]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。

有幾種可能性

  1. 如果您的遠程計算機有點不合適,您可以使用X Windows(然后您的會話在遠程計算機上並顯示在本地計算機上)

  2. mpld3

  3. bokeh和iPython筆記本

  4. 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.

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