我想调用 matplotlib Spine 实例的
draw()
函数。 Spines 的文档显示 draw()
需要一个“渲染器”参数:
draw(self, renderer)
据我所知,渲染器的代码文档不存在。所有将它们作为一个类的引用,例如艺术家页面
上的
matplotlib.backend_bases.Renderer
,都不提供链接。搜索只会在使用常见问题解答页面上显示出渲染器表。这告诉我常见渲染器的名称,但没有告诉我如何获取对渲染器的引用。我在文档中搜索了 get_renderer()
函数,但到目前为止什么也没找到。如何获取渲染器的引用以便使用
spines.draw()
函数?
def find_renderer(fig):
if hasattr(fig.canvas, "get_renderer"):
#Some backends, such as TkAgg, have the get_renderer method, which
#makes this easy.
renderer = fig.canvas.get_renderer()
else:
#Other backends do not have the get_renderer method, so we have a work
#around to find the renderer. Print the figure to a temporary file
#object, and then grab the renderer that was used.
#(I stole this trick from the matplotlib backend_bases.py
#print_figure() method.)
import io
fig.canvas.print_pdf(io.BytesIO())
renderer = fig._cachedRenderer
return(renderer)