我試圖從matplotlib網站使用Julia的PyPlot包重現this example。據我所知,PyPlot是essentialy的matplotlib.pyplot模塊,所以進口matplotlib我需要的其他模塊(與@pyimport宏):茱利亞的PathPatch對象與PyPlot
using PyCall
@pyimport matplotlib.path as mpath
@pyimport matplotlib.patches as mpatches
然後我前進到限定的路徑對象:
Path = mpath.Path
但後來我得到:
fn (generic function with 1 method)
。
就好像我已經定義了一個函數。此外,當我分配path_data我得到以下錯誤:
ERROR: type Function has no field MOVETO
當然,這是由於路徑,這朱莉婭試圖爲一個函數,而不是作爲一種或類似的東西。正如您可能猜到的,當我嘗試定義變量補丁時會發生同樣的情況。
因此,由於預期的對象(類型)被視爲函數,所以matplotlib中的模塊與Julia的pyplot不相容。如果它不同,PyPlot.jl文件就不需要了,這種行爲是可以預料的。
我的問題是:
-Am我做錯了什麼?
- 是否有一個簡單的方法可以使它工作?
- 您是否知道Julia的另一個軟件包,我可以在其中定義補丁並以類似於matplotlib的方式工作?
我記住要做this kind of animations。
感謝您的想法。
感謝ansering,我明白了!只是出於好奇,你知道爲什麼我們使用方括號來訪問PyObject的方法嗎?我認爲這個點也是茱莉亞的標準(如Python) – dapias 2014-09-23 18:24:15
這是我最後一次評論的答案:https://github.com/stevengj/PyCall .jl – dapias 2014-09-23 18:55:14
我已經進階了,但是我被困在這裏了,我定義了一個變量圓:'@pyimport matplotlib.patches as patch','circle = patch.pymember(「Circle」)'。但是當我嘗試'circle [:set_radius](1.0)'我得到了一個錯誤,我也試過'set!(circle,radius,1.0)' – dapias 2014-09-23 20:08:10