MatPlotLib随机绘制颜色

时间:2020-03-22 22:00:20

标签: python numpy matplotlib

这是我的代码:

import numpy as np
import matplotlib.dates as mdates


fig, ax = plt.subplots(figsize = (10,10))

dateList = []
countries = []
casesList = []

colors = []

for e in sorted_date:

  countries.append(e[0])
  dateList.append(e[1][0])
  casesList.append(e[1][1])

# plt.gca().xaxis.set_major_formatter(mdates.DateFormatter('%m/%d/%Y'))

for country, date, case in zip(countries, dateList, casesList):
  ax.scatter(date, case, c = np.random.rand(3,), edgecolors='none', label=country )

plt.legend(loc=1)
plt.show()

我的散点图有效,但是 我一直这样收到RGB或RGBA颜色的错误消息:

'c'参数看起来像一个单一的RGB或RGBA数字序列,应避免使用它,因为如果其长度与'x'和'y'匹配,则值映射将具有优先级。如果您确实想为所有点指定相同的RGB或RGBA值,请使用单行二维数组。

我认为将颜色随机化有问题,但是不确定如何解决。

2 个答案:

答案 0 :(得分:0)

您可以将RGB元组转换为十六进制字符串as showb here

...
for country, date, case in zip(countries, dateList, casesList):
    r, g, b = (int(255*x) for x in np.random.rand(3,))
    hexa = "#%02x%02x%02x" %(r, g, b)
    ax.scatter(date, case, c=hexa, edgecolors='none', label=country)
...

答案 1 :(得分:0)

您需要准确地执行错误提示:将2D数组与一行分别用于RGB数组:

c = np.random.rand(1,3)
相关问题