我从使用非常漂亮的pyplot在python上绘图开始。我旨在展示两个系列数据随时间的演变。与其做一个随时间变化的数据函数图,不如做一个散点图(data1,data2),其中时间分量显示为颜色梯度。
在我的两列文件中,时间将由行号描述。可以使用pyplot的固有功能将其写为文件的第3列,以自行获取行号。
有人可以帮助我吗?
非常感谢。
尼古拉斯
python大神给出的解决方案
使用matplotlib.pyplot.scatter
进行绘制时,可以通过关键字参数c
传递第三个数组。该阵列可以选择希望散点为的颜色。然后,您还可以从matplotlib.cm
中选择合适的颜色图,并使用cmap
关键字参数进行分配。
这个玩具示例创建两个数据集data1
和data2
。然后,它还会创建一个数组colors
,该数组是一个连续值的数组,这些连续值在0和1之间等距,并且长度与data1
和data2
相同。它不需要知道“行号”,只需要知道数据点的总数,然后将颜色等距即可。
我还添加了colorbar
。您可以通过删除plt.colorbar()
行来删除它。
import matplotlib.pyplot as plt
from matplotlib import cm
import numpy as np
N = 500
data1 = np.random.randn(N)
data2 = np.random.randn(N)
colors = np.linspace(0,1,N)
plt.scatter(data1, data2, c=colors, cmap=cm.Blues)
plt.colorbar()
plt.show()