我有一个向量[1,2,3,4,5,6,7,8,9]
和一个配色方案[0,1,1,1,1,1,0,1,1]
,我想制作一个简单的线图,其颜色取决于配色方案,并且在x轴上的日期由时间戳矢量{{ 1}}。这是一个玩具示例。在我无法在此处显示的数据中,此向量是从某处加载的,并且采用时间戳格式。
我使用以下answer生成了这段代码,使我的情节变得如此:
[ pd.Timestamp(i,1,1) for i in range(2000,2009)]
但是我在x轴上格式化日期时遇到问题。在import numpy as np
import pylab as pl
from matplotlib import collections as mc
import matplotlib.dates as mdates
x = [1,2,3,4,5,6,7,8,9]
colors = [0,1,1,1,1,1,0,1,1]
segments = []
y = x
cols = np.zeros(shape=(len(colors),4))
index = 0
for x1, x2, y1,y2 in zip(x, x[1:], y, y[1:]):
if colors[index]==0:
cols[index] = tuple([1,0,0,1])
else:
cols[index] = tuple([0,1,0,1])
index += 1
segments.append([(x1, y1), (x2, y2)])
lc = mc.LineCollection(segments, colors=cols, linewidths=2)
fig, ax = pl.subplots()
ax.add_collection(lc)
ax.autoscale()
ax.margins(0.1)
ax.set_xticklabels([ pd.Timestamp(i,1,1) for i in range(2000,2009)])
fig.autofmt_xdate()
pl.show()
pl.show()
产生ax.xaxis.set_major_locator(mdates.AutoDateLocator())
ax.xaxis.set_major_formatter(mdates.DateFormatter('%Y/%m/%d'))
。当x轴最初设置为某些日期格式时,通常不会发生这种情况,但是由于ValueError: ordinal must be >= 1
的使用,此处的构造很特殊。
您能帮我解决这个问题吗?