属性错误:'module'对象没有属性'to_rgb'。

4

我使用skillmetrics包编写了一个简单代码以生成泰勒图。我使用的是Python 2.7.12版本。代码如下:

import matplotlib.pyplot as plt
import pandas as pd
import numpy as np
import skill_metrics as sm
fire=pd.read_csv('fire.csv')
PMfire = zip(fire['Date'],fire['PM_fire'],fire['Embassy_PM'])
#taylor_stats1 = sm.taylor_statistics('PM_fire','Embassy_PM','Date')
o= {"Data":fire['Embassy_PM'],'Date':fire['Date']}# form date and and embassy datas
p= {"Data":fire['PM_fire'],'Date':fire['Date']}# form  dictionary containg pm_fire and date
# Calculate statistics for Taylor diagram
    # The first array element corresponds to the reference series 
    # for the while the second is that for the predicted series.
taylor_stats1 = sm.taylor_statistics(p,o,'Data')
sdev = np.array([taylor_stats1['sdev'][0]])# Calculate standard deviation
crmsd = np.array([taylor_stats1['crmsd'][0]])#Calculate root mean square difference
ccoef = np.array([taylor_stats1['ccoef'][0]])# Calculate correlation coefficient
sm.taylor_diagram(sdev,crmsd,ccoef)#form taylor digram
plt.savefig('taylor.png')
plt.show()

但是,它给我报错了。错误内容如下:
  File "<ipython-input-2-edf3b67792d8>", line 1, in <module>
    runfile('/home/mala/Downloads/F/taylor_plot.py', wdir='/home/mala/Downloads/F')

  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 699, in runfile
    execfile(filename, namespace)

  File "/usr/lib/python2.7/dist-packages/spyderlib/widgets/externalshell/sitecustomize.py", line 81, in execfile
    builtins.execfile(filename, *where)

  File "/home/mala/Downloads/F/taylor_plot.py", line 21, in <module>
    sm.taylor_diagram(sdev,crmsd,ccoef)

  File "/usr/local/lib/python2.7/dist-packages/skill_metrics/taylor_diagram.py", line 110, in taylor_diagram
    plot_pattern_diagram_markers(X,Y,option)

  File "/usr/local/lib/python2.7/dist-packages/skill_metrics/plot_pattern_diagram_markers.py", line 104, in plot_pattern_diagram_markers
    rgba = clr.to_rgb(option['markercolor']) + (alpha,)

AttributeError: 'module' object has no attribute 'to_rgb'
4个回答

7

to_rgb 函数是相对较新添加到 matplotlib.colors 命名空间中的。您可能安装的是旧版本的 matplotlib。请尝试更新到最新版本的 matplotlib。


谢谢,错误不再出现了。但是现在我又遇到了另一个错误:“ValueError: shape mismatch: value array of shape (2,) could not be broadcast to indexing result of shape (1,)”。 - Mala Pokhrel
请提出一个新问题。对于Python错误,通常应该同时包含完整的traceback和您看到的错误,因为traceback可以给出错误来自何处的上下文信息。 - ngoldbaum
有没有解决过这个问题的人能够评论一下 matplotlib 所需的版本?我使用的是 matplotlib.version == '1.5.1',但在 Python 2.7 中出现了这个错误。 - ntg
我认为matplotlib 2.0或更新版本应该有它。 - ngoldbaum
我尝试执行 pip install --upgrade matplotlib 命令。现在,如果我使用 pip show matplotlib 命令检查,会显示 Version: 2.2.5 。但是,在我的 Jupiter 笔记本中,使用虚拟环境内核时仍然存在相同的错误。 - desmond13
1
我想我找到了问题所在,当我在我的Jupyter笔记本中执行print matplotlib.__version__时,我得到的版本是1.5.1。这意味着我的Jupyter笔记本仍然看到了旧版本的库。 - desmond13

3

-1

尝试将matplotlib和numpy升级到最新版本

sudo pip3 install --upgrade numpy
sudo pip3 install --upgrade matplotlib

-2

只需运行下面的命令,问题就会得到解决。

$ sudo pip install --upgrade matplotlib

1
请解释您的答案,以便其他人更容易理解。 - TheParam
只需运行以下命令即可——> sudo pip install --upgrade matplotlib - Ganesh Kharad
1
阅读此帖子:https://jakevdp.github.io/blog/2017/12/05/installing-python-packages-from-jupyter/看起来你永远不应该使用 sudo pip install 安装任何软件包。 - desmond13

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接