<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                # 在 Python shell 中使用 Matplotlib > 原文:[Using matplotlib in a python shell](http://matplotlib.org/users/shell.html) > 譯者:[飛龍](https://github.com/) > 協議:[CC BY-NC-SA 4.0](http://creativecommons.org/licenses/by-nc-sa/4.0/) > 警告 > 該頁面的內容已嚴重過時。 默認情況下,matplotlib 將繪圖延遲到腳本結束,因為繪圖可能是開銷大的操作,并且你可能不想在每次更改單個屬性時更新繪圖,而是只在所有屬性更改后更新一次。 但是在 python shell 中工作時,通常需要用每個命令更新繪圖,例如,在更改`xlabel()`或一行的標記樣式之后。 雖然這在概念上很簡單,但在實踐中它可能很棘手,因為 matplotlib 在底層是一個圖形用戶界面應用程序,并擁有一些技巧,使應用程序在一個 python shell 正常工作。 ## 使用 IPython 解決 > 注意 > 這里描述的模式出于歷史原因仍然存在,但強烈建議不要使用。它污染函數的命名空間,會影響 python 內建設施,并可能導致錯誤難以跟蹤。 要獲得 IPython 集成而無需導入,使用`%matplotlib`魔術命令是首個選擇。 參見 [ipython 文檔](http://ipython.org/ipython-doc/stable/interactive/reference.html#plotting-with-matplotlib)。 幸運的是,一個增強的交互式 python shell,[ipython](http://ipython.org/) 已經找出了所有這些技巧,并且可被 matplotlib 感知,所以當你在 pylab 模式下啟動 ipython。 ``` johnh@flag:~> ipython Python 2.4.5 (#4, Apr 12 2008, 09:09:16) IPython 0.9.0 -- An enhanced Interactive Python. In [1]: %pylab Welcome to pylab, a matplotlib-based Python environment. For more information, type 'help(pylab)'. In [2]: x = randn(10000) In [3]: hist(x, 100) ``` 它為你設置一切使交互式繪圖工作,就像你期望的那樣。 調用`figure()`并彈出圖形窗口,調用`plot()`使你的數據出現在圖形窗口中。 注意在上面的例子中,我們沒有導入任何 matplotlib 名稱,因為在 pylab 模式下,ipython 將自動導入它們。 ipython 還為你啟用交互模式,這會導致每個 pyplot 命令觸發圖形更新,并且還提供了一個 matplotlib 感知的運行命令,來高效運行 matplotlib 腳本。 ipython 在運行命令期間關閉交互模式,然后在運行結束時恢復交互狀態,以便你可以手動繼續調整圖形。 ipython 已經嵌入了很多最近的作品,從 pylab 支持,到各種 GUI 應用程序,所以請檢查 ipython 郵件列表的最新狀態。 ## 其它 Python 解釋器 如果你不能使用 ipython,并且仍然想在交互式 python shell 使用 matplotlib/pylab,例如,plain-ole 標準的 python 交互式解釋器,你將需要了解[什么是 matplotlib 后端](http://matplotlib.org/faq/usage_faq.html#what-is-a-backend) 。 有了 TkAgg 后端,它使用 Tkinter 用戶界面工具包,你可以從任意的非 gui python shell 使用 matplotlib。 只需在你的`matplotlibrc`文件中設置`backend : TkAgg `和`interactive : True `(請參閱自定義 matplotlib)并啟動 python。 然后: ```py >>> from pylab import * >>> plot([1,2,3]) >>> xlabel('hi mom') ``` 應該能夠開箱即用。 這也可能適用于最新版本的 qt4agg 和 gtkagg 后端,以及 Macintosh 上的 macosx 后端。 注意,在批處理模式下,即從腳本制作圖形時,交互模式可能很慢,因為它用每個命令重繪圖形。 因此,你可能需要仔細考慮,然后通過`matplotlibrc`文件而不是使用下一節中列出的函數,使其作為默認行為。 Gui shell 問題最多,因為它們必須運行主循環,但是交互式繪圖也涉及主循環。 Ipython 已經為 matplotlib 主后端解決了這一切問題。 可能有其他 shell 和 IDE 也可以在交互模式下使用 matplotlib,但一個明顯的候選項不會:python IDLE IDE 是一個不支持 pylab 交互模式的 Tkinter gui 應用程序,無論后端是什么。 ## 控制交互式更新 `pyplot`接口的`interactive`屬性控制是否在每個`pyplot`命令上繪制圖畫布。 如果`interactive`是`False`,那么每個`plot`命令都會更新圖形狀態,但只會在顯式調用`draw()`時繪制。 當`interactive`為`True`時,每個`pyplot`命令都會觸發繪制。 `pyplot`接口提供了 4 個有助于交互式控制的命令。 `isinteractive()` 返回交互式設置。`True|False`。 `ion()` 將交互式模式打開。 `ioff()` 將交互式模式關閉。 `draw()` 強制圖形重新繪制。 當處理繪圖開銷很大的大型圖形時,你可能希望臨時關閉 matplotlib 的交互式設置來避免性能損失: ```py >>> #create big-expensive-figure >>> ioff() # turn updates off >>> title('now how much would you pay?') >>> xticklabels(fontsize=20, color='green') >>> draw() # force a draw >>> savefig('alldone', dpi=300) >>> close() >>> ion() # turn updating back on >>> plot(rand(20), mfc='g', mec='r', ms=40, mew=4, ls='--', lw=3) ```
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看