簡體   English   中英

Python ggplot:是否可以關閉顯示的GUI? 獲取命令行(“非交互式繪圖”/“批處理”)

[英]Python ggplot: Is it possible to turn off the GUI displayed? and get a command-line (“non-interactive plotting”/“batch”)

使用Python ggplot繪圖時,每個繪圖命令都會顯示一個GUI窗格並暫停執行(“交互式繪圖”)。 但是我要:

  1. 避免/關閉此GUI並將繪圖對象保存在運行時的某些位置(我將在其他一些C#表單控件中顯示它)。

  2. 在R語言中找到一個等效於dev.off()命令的Python,它關閉了用於繪圖的GUI。

例:

print ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

當我執行它時,它會打開一個顯示圖表的新GUI(如下所示)。

在此輸入圖像描述

由於繪圖是由__repr__方法觸發的,顯而易見的方法是避免調用它時的情況。 由於你想在其他地方使用這個圖,所以沒有理由調用print或甚至執行將被丟棄的語句,如下所示:

ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

相反,您可以簡單地將其分配給變量

p = ggplot(data, aes('Age', 'Weight')) + geom_point(colour='steelblue') 

在R中做什么是完全一樣的。使用圖形設備重定向輸出並丟棄它並不是真的有意義。

如果由於某種原因這還不夠,你可以切換到非交互式matplotlib后端:

import matplotlib
matplotlib.use('Agg')
from ggplot import *
ggplot(aes(x='date', y='beef'), data=meat)
<ggplot: (...)>

您可以執行以下操作,返回matplotlib圖:

g = ggplot(...) + geom_xxx(...)
fig = g.draw()

ggplots __repr__()方法( print(g)調用的基本上是self.draw()然后使用matplotlibs plt.show()來顯示圖...

您還可以使用ggsave(g)將繪圖保存在某處。

暫無
暫無

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

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