这是我的代码:
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值,请使用单行二维数组。
我认为将颜色随机化有问题,但是不确定如何解决。
答案 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)