在Julia中使用matplotlib的patches

4

我希望能够使用Julia计算的输出(在IJulia中工作),使用Matplotlib的补丁模块绘制图形(通过Steven Johnson的 PyCallPyPlot 包)。我已经阅读了一些相关的stackoverflow文章,但似乎无法获得最小工作示例。能否有人发布一个简单的例子?比如画一个矩形或椭圆?

这里是一个可行的Python示例:

#!/usr/local/bin/python3
import matplotlib.pyplot
import matplotlib.patches

cfig = matplotlib.pyplot.figure()
c = cfig.add_subplot(111)
c.set_aspect("equal")
p = matplotlib.patches.Circle([0.5,0.5],0.40,fc="blue",ec="red",linewidth=5,zorder=0)
c.add_patch(p)

cfig.savefig("circle.pdf",bbox_inches="tight")

我尝试用Julia做同样的事情,但在subplot处停滞不前。

using PyPlot
using PyCall
@pyimport matplotlib.patches as patches

cfig = figure()
c = cfig.add_subplot(111)

这将产生:

type Figure has no field add_subplot
while loading In[19], in expression starting on line 4

PyPlot.jl基本用法示例对你是否有效? - rickhg12hs
请点击这里。此时您需要使用cfig[:add_subplot]语法。 - jverzani
@rickhg12hs。是的,基本示例对我有效。 - glwhart
1
@jverzani 谢谢。你的例子帮助我拼凑出一个示例。 - glwhart
1个回答

4

好的,感谢jverzani提供的链接,我能够组合出一个可行的示例。对于在Julia中设置绘图的所有选项的语法,我仍然有些摸不着头脑。

using PyPlot
using PyCall
@pyimport matplotlib.patches as patch

cfig = figure()
ax = cfig[:add_subplot](1,1,1)
ax[:set_aspect]("equal")
c = patch.Circle([0.5,0.5],0.4,fc="blue",ec="red",linewidth=.5,zorder=0)
ax[:add_artist](c)
cfig[:savefig]("circle.png")

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接