问题在于我无法即时更改后端,例如以下代码不起作用: matplotlib.pyplot.switch_backend('cairo.png') (我知道switch_backend功能是实验性的)
我还尝试过matplotlib.use("cairo.png"),但这会导致导入问题,因为matplotlib.use("cairo.png")语句应该在导入matplotlib.pyplot之前执行。但是在脚本的生命周期中,我需要两个不同的后端。
所以我的问题是,有没有人有一个代码片段,展示如何在Matplotlib中切换后端?
非常感谢!
更新: 我编写了一个片段,加载matplotlib,显示默认后端,卸载matplotlib,重新加载并更改后端:
import matplotlib
import matplotlib.pyplot as plt
import sys
print matplotlib.pyplot.get_backend()
modules = []
for module in sys.modules:
if module.startswith('matplotlib'):
modules.append(module)
for module in modules:
sys.modules.pop(module)
import matplotlib
matplotlib.use("cairo.png")
import matplotlib.pyplot as plt
print matplotlib.pyplot.get_backend()
但这真的是做事的方式吗?
更新2:昨天我有些严重的脑冻结...最简单和最明显的解决方案是对所有图表使用Cairo后端,而不切换后端 :)
更新3:实际上,这仍然是一个问题,所以任何知道如何动态切换matplotlib后端的人...请发表你的答案。
pyplot.switch_backends()
。它可能在你的情况下无法正常工作。 - jfs