我正在创建一个包含约500个文件的散点图,每个文件都有几百兆字节。我希望每个文件中的所有点都是与文件元数据中的单个值(浮点数)相对应的特定颜色。
我找不到首先设置整个图的颜色范围,然后将给定的plt.scatter实例的颜色设置为该范围内的值的方法。似乎无论如何,matplotlib都希望从与数据大小相同的可迭代对象中为每个点选择一种颜色。这对于我的应用程序是不切实际的,因为为我的所有数据创建单个阵列将需要数GB。
我想做的伪代码是:
for file in files:
val = get_metadata(file)
data = np.genfromtxt(file)
color_range = [c_min, c_max]
plt.scatter(data[:,0],
data[:,1],
color_range = color_range,
c = val)
plt.show()
有人知道做过matplotlib的方式吗?我确实无法在文档中找到它。
有人建议这是this question的副本,但略有不同。在那里提供的解决方案,
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
x = np.arange(10)
ys = [i+x+(i*x)**2 for i in range(10)]
colors = cm.rainbow(np.linspace(0, 1, len(ys)))
for y, c in zip(ys, colors):
plt.scatter(x, y, color=c)
依次遍历定义的颜色。我想如上所述定义我的颜色图,但是然后从带有元数据值的颜色图中进行选择,该值是在一定范围内的连续浮动。