【发布时间】:2018-07-30 01:48:56
【问题描述】:
我正在从事一个项目,该项目涉及将颜色图应用于 matplotlib 中生成的散点图。我的代码按预期工作,除非生成的散点图正好有四个点。这在以下代码中进行了说明:
import numpy as np
import matplotlib.pyplot as plt
cmap = plt.get_cmap('rainbow_r')
z = np.arange(20)
plt.close()
plt.figure(figsize=[8,6])
for i in range(1,11):
x = np.arange(i)
y = np.zeros(i) + i
plt.scatter(x, y, c=cmap(i / 10), edgecolor='k', label=i, s=200)
plt.legend()
plt.show()
此代码生成以下图:
每一行都应该由相同颜色的点组成,但对于有四个点的行,情况并非如此。
我认为这与从颜色图中选择的颜色作为 4 个浮点数的元组返回这一事实有关,如下所示:
print(cmap(0.4))
>> (0.69999999999999996, 0.95105651629515364, 0.58778525229247314, 1.0)
假设这是问题的根源,我不知道如何解决它。
【问题讨论】:
标签: python matplotlib legend scatter-plot colormap