当RPY2导入包时,Matplotlib错误帧单独绘制

时间:2016-11-02 11:46:25

标签: python python-2.7 matplotlib rpy2

在我的计算机上安装了RPY2(v.2.7.8)和附带的依赖项(Windows 10,Python 2.7 x86)之后,Matplotlib(v.1.5.3)似乎已经损坏了。即使是最简单的图,框架和窗口也是彼此分开描绘的:

series1  = pd.Series(np.arange(500))
series2 = series1*-1
plt.plot(series1,series2)
# OUT: [<matplotlib.lines.Line2D object at 0x185F4A50>]
plt.show()

enter image description here

以下导入出错。

# general
import os
from os import path # necessary for check file-overwrite
import calendar
import datetime
import csv
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import imp

# cvxEDA
from scipy import signal
citi = imp.load_source('cvxeda', 'D:\\Python27\\Lib\\cvxEDA\\src\\cvxEDA.py')

#RPY and RHRV
import rpy2
import rpy2.robjects as robjects
import rpy2.robjects.packages as rpackages
from rpy2.robjects.packages import importr# This step is importing the R package in the embedded R,
# and is exposing all R objects in that package as Python objects
# import R's "base" package
base = importr('base')
# import R's "utils" package
utils = importr('utils')
# select a mirror for R packages
utils.chooseCRANmirror(ind=1) # select the first mirror in the list
rhrv = importr('RHRV')

更新
我已将问题追溯到以下导入rhrv = importr('RHRV')。 RHRV是R的心率分析包,其包括其自己的绘图功能(用于R)。这可能是一个令人不安的问题。

之前有没有人遇到过此问题?出了什么问题,我该如何解决?

1 个答案:

答案 0 :(得分:2)

我已就此问题与R-package RHRV的开发人员联系。他们告诉我那个

  

RHRV使用tkrplot库,该库使用Tk小部件。也许这会干扰你的python模块。

虽然我无法发现matplotlib确实使用了Tk小部件,但我确实发现matplotlib可以与Tk结合使用(例如http://matplotlib.org/examples/user_interfaces/embedding_in_tk)。这可能是绘图问题的原因。

我能想到的唯一解决方案是在导入RHRV时不进行绘图。首先计算并保存数据。然后,在另一个脚本中,您可以制作图表。或者,有专门用于Python的HRV分析包(gHRV or hrv)。但是,我无法使gHRV工作,而hrv包尚未完成。