相关疑难解决方法(0)

如何在matplotlib/Python中切换后端

我正在努力解决以下问题.我需要生成由一组图表组成的报告.除了一个之外,所有这些图表都是使用Matplotlib默认后端(TkAgg)制作的.需要使用开罗后端制作一张图表,原因是我正在绘制igraph图,并且只能使用Cairo绘制.

问题是我不能动态改变后端,例如以下方法不起作用:(
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()
Run Code Online (Sandbox Code Playgroud)

但这真的是这样做的吗?

更新2:我昨天有一些严重的大脑冻结......简单而明显的解决方案是将开罗后端用于所有图表而不是切换后端:)

更新3:实际上,它仍然是一个问题所以谁知道如何动态切换matplotlib后端....请发布你的答案.

python backend matplotlib cairo

68
推荐指数
8
解决办法
7万
查看次数

plt.show()使终端挂起

在我调用我的一个程序的最后一个函数的最后,我有以下代码来绘制一个简单的颜色图.

plt.figure()
plt.pcolormesh(X,Y,Z)
plt.colorbar()
plt.show()
Run Code Online (Sandbox Code Playgroud)

后来我回到主要,我的程序完成.该图显示为预期,但是当我使用角落中的x按钮(在ubuntu上)关闭它时,我的程序不会结束.它只是在进程中运行.我怎么能纠正这个?

python matplotlib

26
推荐指数
1
解决办法
1万
查看次数

通过matplotlib在Pycharm调试控制台中进行交互式绘图

我有一个python脚本,我正在尝试调试,我正在使用Pycharm Community Edition版本2016.3.2.

我想做的是在调试控制台中制作一些图(我通过设置断点并启动调试器来激活),但问题是图表根本没有出现.

这里的官方matplotlib文档中提供了一些代码来获得我的问题的可重现的示例,特别是这段代码:

import matplotlib.pyplot as plt
plt.ion()
plt.plot([1.6, 2.7])
Run Code Online (Sandbox Code Playgroud)

我觉得奇怪的是,如果我从pycharm内部打开一个新的python控制台,当执行此代码时,pycharm会弹出一个显示该图的新窗口,但如果我在"debug"控制台中粘贴相同的代码,则不会发生这种情况.

在这两种情况下,我都在控制台中获得以下输出

在此输入图像描述

我在这里发现了一个可能相关的帖子,但坦率地说,我无法判断这两个问题是否会减少到同一个问题.

python pycharm

8
推荐指数
1
解决办法
915
查看次数

Matplotlib 不全屏保存图像

[编辑] 正如答案中的评论所建议的,该问题可能与操作系统有关。我在 Windows 10 上。我有 python 3.7.1,我使用 Anaconda/Spyder。

我按照这个这个主题尝试在保存之前最大化由绘图生成的图像。在我的代码中,有效的是来自 spyder figure viewer 的图确实最大化了。但是当文件保存到图像中时,图像并没有最大化。

我该如何解决?

我的代码如下:

import matplotlib as mpl
mpl.use('TkAgg') # With this line on: it returns me error. Without: image don't save as it has been shown in plot from spyder.
from datetime import datetime
import constants
import numpy as np
from numpy import *
from shutil import copyfile
from matplotlib.pyplot import *
mpl.rcParams['text.usetex'] = True
mpl.rcParams['text.latex.preamble'] = [r'\usepackage{amsmath}']
import matplotlib.pyplot as plt …
Run Code Online (Sandbox Code Playgroud)

python image matplotlib

7
推荐指数
1
解决办法
350
查看次数

标签 统计

python ×4

matplotlib ×3

backend ×1

cairo ×1

image ×1

pycharm ×1