我开始使用非常漂亮的pyplot绘制python。我的目标是随着时间的推移展示两个系列数据的演变。我不想做一个随意的数据时间函数,而是想要一个散点图(data1,data2),其中时间分量显示为颜色渐变。
在我的两个列文件中,时间将由行号描述。要么使用pyplot的内在功能写入文件中的第3列,要么自行获取行号。
有人可以帮我这么做吗?
非常感谢。
尼古拉斯
答案 0 :(得分:5)
使用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()