2016-11-02 31 views
3

在我的計算機(Windows 10,Python 2.7 x86)上安裝了RPY2(v.2.7.8)和伴隨的依賴關係之後,Matplotlib(1.5.3)似乎有被損壞。甚至最簡單的情節,框架和窗口彼此分開描述:當RPY2導入包時,單獨繪製Matplotlib錯誤幀

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)。這可能是令人不安的問題。

有沒有人遇到過這個問題?出了什麼問題,我該如何解決?

+0

如果您可以提供一些我們可以嘗試重現該問題的「假」數據,將會有所幫助。 – DavidG

+0

@Koga是的。這在過去的幾周裏發生過幾次。它似乎與數據類型無關。我會在帖子中添加一些數據。 –

+0

當你正常運行腳本'python script.py'時,你會遇到同樣的問題嗎?殼牌可能會使用一些功能(使生活更輕鬆),這會造成問題。 – furas

回答

2

我已聯繫R包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包尚未完成。