我有这样的数据:
dates = ['1874-05-02', '1874-05-03', '1874-05-04',
'1874-05-05', '1874-05-06','1874-05-07']
data1 = ['-7.000', '7.000', '2.000', '11.600', '13.500', '-13.500']
data2 = ['0.000', '25.000', '0.000', '75.000', '12.000', '22.000']
我需要绘制一个图表,其中日期在x轴上,data1在y轴上。需要Data2在图表中绘制点,它们都应该是与其值相对应的不同颜色。那么我怎样才能用pcolor或pcolormesh做到这一点?
以下是我从http://matplotlib.org/examples/pylab_examples/pcolor_demo.html找到的示例代码,我想知道我的数据可以得到这样的结果吗?这是另一个展示我应该做的事情的链接:https://dl.dropboxusercontent.com/u/47527320/diagram.jpg。我可以用pcolor得到这样的图吗?
import matplotlib.pyplot as plt
import numpy as np
dx, dy = 0.15, 0.05
y, x = np.mgrid[slice(-3, 3 + dy, dy),slice(-3, 3 + dx, dx)]
z = (1 - x / 2. + x ** 5 + y ** 3) * np.exp(-x ** 2 - y ** 2)
z = z[:-1, :-1]
z_min, z_max = -np.abs(z).max(), np.abs(z).max()
plt.subplot(2, 2, 1)
plt.pcolor(x, y, z, cmap='RdBu', vmin=z_min, vmax=z_max)
plt.title('pcolor')
plt.axis([x.min(), x.max(), y.min(), y.max()])
plt.colorbar()
plt.show()
答案 0 :(得分:2)
scatter plot会给出您描述的内容。
import numpy as np
import pylab as plt
import datetime
dt = datetime.datetime
dates = [dt(1874,05,02), dt(1874,05,03), dt(1874,05,04), dt(1874,05,05), dt(1874,05,06),dt(1874,05,07)]
data1 = [-7.000, 7.000, 2.000, 11.600, 13.500, -13.500]
data2 = [0.000, 25.000, 0.000, 75.000, 12.000, 22.000]
plt.scatter(dates, data1, c=data2, s=400)
plt.show()
评论中有一些关于需要2D数据的讨论,但我认为这是因为你所寻找的内容不够明确。 mpl示例链接中的图表类型和草图本质上完全不同。看一下mpl gallery page,您会看到像草图一样(并且与数据的结构相匹配)正在使用散点图。
这里有很多选项来处理日期和颜色,但这应该可以让你开始。