在我的计算机上安装了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()
以下导入出错。
# 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)。这可能是一个令人不安的问题。
之前有没有人遇到过此问题?出了什么问题,我该如何解决?
答案 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包尚未完成。