python错误:无法将参数转换为rgb序列

时间:2018-04-14 13:29:18

标签: python plot colorbar

这是我的代码:

    import numpy as np
    import matplotlib.pyplot as plt
    a=[0.8358042069314231, 0.6024065701024207, 0.9617569162444223, 1.120885517331551, 0.9778266035872442, 0.8887086644135614, 1.129697816341799, 0.7201744522139227, 0.8664407952949176, 0.7341260712316454, 0.658510937374308, 0.8904146773410425, 0.8717757176749454, 0.8166459824393625, 0.8339372675079395, 0.8003634701144817, 0.7659874150298758, 0.588331305578084, 0.55522301812699, 1.170550069401354, 0.8591871445132889, 0.8791241895935374, 1.025333128737861, 0.7626055728517448, 1.078399671082715, 0.7055734855725923, 0.720798713206163, 0.6886333276632871, 0.8471288388621045, 0.8754780670153172, 0.8523708462663552, 0.7246874496850487, 0.8292394046416274, 0.7803767971215964, 0.8743477112471153, 0.9958969069407901, 0.6769431631803139, 0.8773467224566912, 1.000147098676991, 0.7696909697871333, 0.8737321588069848, 0.5382244141057999, 0.4713278235703561, 0.6646682699231433, 0.8142396110707529, 0.8010456498519396, 0.6230657827339223, 0.688395869330359, 0.9462232919128286, 0.8495316484723737, 0.9942093060309608, 0.5228577377120195, 0.8192451490174453, 0.7218109597938437, 1.094902533752046, 0.7918411571432902, 0.1853703245133316, 0.6526308267023782, 1.170724769758224, 0.7302772774120317, 0.9324328310595102, 0.4962678697988561, 0.3752720253093461, 1.071244603207015, 0.66615740139685, 1.403488959177528, 0.6038971390943845, 0.8096930613194361, 0.9225707844751444, 0.4648132597838837, 0.783465976417999, 0.587824043205004, 0.8696348536547795, 0.6087662565833588, 0.8114405187405719, 1.160979540670139, 0.4172098683725269, 0.8203049559312928, 0.5283513301434342, 0.9804213471244552, 0.8612093808286192, 0.9541602042466272]
aa=[0.5467142240969229, 0.9832349591334052, 0.6237246993961033, 0.0, 0.5831794244764199, 0.3514226975000825, 1.77109168097854, 0.6247138549785067, 1.664771783798592, 0.4247971724813068, 0.0, 0.2523393191582641, 0.4893039208326278, 0.9281078151898693, 0.5768011081148378, 1.108193038745785, 0.2456363621402149, 0.8617850242006354, 0.5267724873577896, 0.1577668980710197, 0.3256065201760527, 0.6198844334464519, 0.0, 0.4800467231453376, 0.41063682727516, 0.5888128461522766, 0.7914054193752765, 0.5364683892414501, 0.6300029971600053, 0.795956524973436, 0.8859314844820457, 0.0, 1.009933346883598, 0.3681143616052806, 0.673066247323437, 0.784823895306669, 0.6549928032683661, 0.6270061214399052, 1.15337367807155, 0.5136022829838987, 0.6315411393786611, 0.3271570452075644, 0.5957190842140955, 0.0, 0.4745979810598814, 0.305842741616707, 0.3842636886080335, 0.7196084371435851, 0.0, 0.312272760281443, 0.3554478389969122, 0.868091699158965, 0.5869574668164317, 0.5649192923746441, 0.0, 0.8057386703802037, 0.0, 0.501235379563183, 0.6103368504256358, 0.5247345586856612, 0.8227552208451726, 0.1186217840874107, 0.0, 0.0, 0.0, 1.063407586906356, 0.6192493545908646, 0.0, 0.8068052574049874, 0.3638468406214595, 0.9188082415772201, 0.5535302027459117, 1.204703404116142, 0.0, 0.6159298413053304, 2.113067884469592, 0.0, 0.8735339653162774, 0.5949939082731295, 0.0, 0.7042802775180598, 0.7582877313150294]
aaa=[27114, 25347, 25839, 23503, 25181, 27094, 23412, 27132, 25751, 23270, 24659, 25522, 25412, 24696, 24667, 23323, 23206, 24794, 26535, 26074, 25354, 24446, 25871, 25283, 25387, 26820, 24011, 23982, 24237, 26169, 24146, 25186, 25122, 25223, 23715, 24000, 24876, 23920, 24256, 26191, 24873, 23603, 27226, 24253, 25157, 25099, 24860, 23125, 25348, 25696, 24563, 25866, 24910, 27009, 25067, 27643, 23798, 28002, 27531, 25525, 25126, 24050, 24040, 24467, 25819, 25935, 25453, 25886, 26827, 26372, 26465, 24786, 24275, 26212, 23968, 29389, 23460, 26550, 25241, 24205, 24649, 24121, 24734, 24221, 26176, 24077, 27017, 22919, 24376, 25579, 24076, 28658, 26675]
plt.scatter(a,aa,color=aaa)
plt.colorbar()
plt.show()

我收到了这个错误:

ValueError: to_rgba: Invalid rgba arg "27114"
to_rgb: Invalid rgb arg "27114"
cannot convert argument to rgb sequence

我怎么能用第三个数据添加colorbar?

1 个答案:

答案 0 :(得分:1)

您的变量aaa未定义matplotlib颜色。 来自documentation

  

Matplotlib识别以下格式以指定颜色:

     
      
  • [0,1]中浮点值的RGB或RGBA元组(例如,(0.1,0.2,0.5)或(0.1,0.2,0.5,0.3));
  •   
  • 十六进制RGB或RGBA字符串(例如,'#0F0F0F'或'#0F0F0F0F');
  •   
  • [0,1]中浮点值的字符串表示,包括灰度级(例如,'0.5');
  •   
  • {'b','g','r','c','m','y','k','w'}之一;
  •   
  • 一个X11 / CSS4颜色名称;
  •   
  • 来自xkcd颜色调查的名称;以'xkcd:'为前缀(例如'xkcd:sky blue');
  •   
  • 其中一个{'tab:blue','tab:orange','tab:green','tab:red','tab:purple','tab:brown','tab:pink','tab :grey','tab:olive','tab:cyan'},它们是'T10'分类调色板中的Tableau颜色(这是默认的颜色循环);
  •   
  • “CN”颜色规范,即“C”后跟单个数字,这是默认属性循环的索引   (matplotlib.rcParams [ 'axes.prop_cycle']);索引发生在   艺术家创作时间,如果周期没有,则默认为黑色   包括颜色。
  •   

这意味着您需要转换数字以符合其中一种格式。