当前位置: 首页 > 面试题库 >

ValueError:无效的RGBA参数:'rgbkymc'

孟新知
2023-03-14
问题内容
train_class = train_df['Class'].value_counts().sortlevel()
my_colors = 'rgbkymc'  #red, green, blue, black, etc.
train_class.plot(kind='bar', color=my_colors)
plt.grid()
plt.show()

我越来越:

Value Error : Invalid RGBA argument : 'rgbkymc'

检查所有内容后,我无法得知出现此错误的原因,这似乎很好。

有人可以帮我找出错误吗?

KeyError                                  Traceback (most recent call last)
~\Anaconda3\lib\site-packages\matplotlib\colors.py in to_rgba(c, alpha)
131     try:
--> 132         rgba = _colors_full_map.cache[c, alpha]
133     except (KeyError, TypeError):  # Not in cache, or unhashable.

KeyError: ('rgbkymc', None)

问题答案:

Dataframe.plot()实际上并不
需要color的参数。你必须驱动matplotlib.pyplot.bar()直接调用,如果你想使用的颜色简单的序列(但要注意,有更好的选择,下面列出)。

如果你决定使用matplotlib.pyplot.bar()直接,再考虑到它的color参数,那么只需要无论是 单一
有效的颜色值
,那么'r'或者'k',或 序列
这样的颜色值(在对文件bar()的调用它
数组一样 )。一个 列表 的名称将工作:

my_colors = ['r', 'g', 'b', 'k', 'y', 'm', 'c']  # red, green, blue, black, etc.

plt.bar(len(train_class), train_class, color=my_colors)

文档指出,序列的长度应等于绘制的条数:

可选参数 coloredgecolorlinewidthxerryerr 可以是标量或长度等于条数的序列。

但是,将 颜色映射
传递到Dataframe.plot()此处比较容易。彩色映射是获得不同条形颜色的便捷途径。您可以传入一个作为colormap关键字参数,它可以是一个命名映射(作为字符串):

train_class.plot(kind='bar', colormap='Paired')

matplotlib.cm模块中的实际matplotlib颜色图对象:

from matplotlib import cm

train_class.plot(kind='bar', colormap=cm.Paired)

如果您要坚持使用matplotlib.pyplot.bar(),但是要使用颜色表,请根据颜色表创建一系列颜色。熊猫np.linspace()为此使用,因此我们在这里也这样做:

import numpy as np

paired_colors = cm.Paired(np.linspace(0, 1, num=len(train_class))
plt.bar(len(train_class), train_class, color=paired_colors)

对于条形图,我会选择定性的颜色图;每个名称都是cmcolormap模块的属性。上面cm.Paired是一个这样的颜色图。以0.0到1.0之间的浮点数序列调用颜色图,可以返回在该范围的每个“百分比”处拾取的颜色。您也可以传入整数序列来索引各个颜色。

返回到Pandas,您还可以根据matplotlib.colors.ListedColormap实例选择一系列颜色来创建一个颜色图:

from matplotlib.colors import ListedColormap

my_colors = ['r', 'g', 'b', 'k', 'y', 'm', 'c']  # red, green, blue, black, etc.
my_colormap = ListedColormap(my_colors)

然后将其传递给数据框.plot()调用:

train_class.plot(kind='bar', colormap=my_colormap)


 类似资料:
  • 问题内容: 我有一个读取温度数据的脚本: 有时,脚本在将值转换为float的行上失败: get_temp 数据中的文件“ ./projector.py”,第129行[ch] = float(temp) ValueError:float()的无效文字:+ 135.057E + 0 + 078.260E + 0 +00029 但这不是无效的文字。如果我将其输入任何python shell中, 那么它会

  • 问题内容: 有人知道为什么chrome参数不起作用吗? 我也尝试过在切换台之前不加“-”并仅给出一个参数… Chrome启动,但没有激活的标志。 我使用最新的chromedriver。 问题答案: 我最近发现的类不与当前的硒和铬出于某种原因(如硒2.33.0,铬30和2013年7月)正常工作。 我相信,我链接的答案也是您解决问题的方法。只需使用,这些对我来说一直很好:

  • 我想让它在每天每小时的第5,15,25,35,45和55分钟运行。这似乎与这里的AWS调度事件文档一致http://docs.AWS.amazon.com/amazoncloudwatch/latest/Events/scheduledevents.html。 上面的文档允许用0到59之间的逗号分隔值表示分钟,并使用*通配符反映小时、月日(或周日)、月和年。 我尝试在Lambda控制台(创建函数并

  • 我正在上载excel工作表,并希望将其数据移动到数据库中的另一个表中。最近两天我收到了一个错误(),但是,如果我设计了一个非常简单的应用程序,它就可以正常工作。请帮帮我

  • 当我试图从我的api中点击以从keydove对用户进行身份验证时,它给了我一个错误无效参数:keydove页面上的redirect_uri。除了师父,我创造了自己的王国。KeyClope正在http上运行。请帮帮我。

  • 问题内容: 背景:我正在编写一个简单的UDP应用程序对我管理的beta服务器执行ping操作,以便告诉我它仍然可以正常运行(我无法对那些想知道的服务器启用ping操作)。我打算在手机上运行此命令,以在服务器不再响应时警告我。 我试图像这样使用看似简单的java.net.DatagramSocket: 我还要说一句,我已通过android清单启用了Internet权限,如果删除了use子句,则会出现