我正在绘制一些2D数据轮廓,但希望有一个连续的色条而不是离散的色条。我怎么得到这个?查看我的代码和输出。
我尝试在不提供颜色级别,不同颜色图的情况下进行绘图,但无济于事。
ylim = [0, 8]
xlim = [starttime, endtime]
fig = plt.figure(figsize=(10,7))
ax = plt.subplot()
levels1 = np.arange(5,61,5)
cmap=plt.get_cmap('jet')
Zplot=ax.contourf(timesNew, hgtNew, ZNew, levels1, cmap=cmap,
vmin=min(levels1), vmax=max(levels1), extend='both')
cbZ=plt.colorbar(Zplot, ticks=levels1)
niceDates = []
for timestamp in np.arange(ax.get_xlim()[0],ax.get_xlim()[1]+sec,sec):
niceDates.append(str(datetime.datetime.utcfromtimestamp(timestamp).strftime("%H")))
ax.set_ylim(ylim)
ax.set_xlim(xlim)
ax.set_xticks(np.arange(ax.get_xlim()[0],ax.get_xlim()[1]+sec,sec))
ax.set_xticklabels([])
ax.set_xticklabels(niceDates) #plot nice dates
ax.set_ylabel('Height (km)', fontsize=labelsize)
ax.set_xlabel('Time (UTC)', fontsize=labelsize)
代码可以很好地工作并绘制,但是颜色条是离散的,我希望它是连续的。我究竟做错了什么?数据位于2D numpy数组中。我已经对数据进行了一些广泛的处理,因此除了绘制外,没有显示完整的代码。
答案 0 :(得分:1)
据我所知,没有办法获得真正的连续颜色条。尝试添加更多级别。这样,它将看起来更像一个连续的颜色栏。
ylim = [0, 8]
xlim = [starttime, endtime]
fig = plt.figure(figsize=(10,7))
ax = plt.subplot()
levels1 = np.linspace(5,61,500)
level_ticks = np.arange(5, 61, 5)
cmap=plt.get_cmap('jet')
Zplot=ax.contourf(timesNew, hgtNew, ZNew, levels1, cmap=cmap,
vmin=min(levels1), vmax=max(levels1), extend='both')
cbZ=plt.colorbar(Zplot, ticks=level_ticks)
niceDates = []
for timestamp in np.arange(ax.get_xlim()[0],ax.get_xlim()[1]+sec,sec):
niceDates.append(str(datetime.datetime.utcfromtimestamp(timestamp).strftime("%H")))
ax.set_ylim(ylim)
ax.set_xlim(xlim)
ax.set_xticks(np.arange(ax.get_xlim()[0],ax.get_xlim()[1]+sec,sec))
ax.set_xticklabels([])
ax.set_xticklabels(niceDates) #plot nice dates
ax.set_ylabel('Height (km)', fontsize=labelsize)
ax.set_xlabel('Time (UTC)', fontsize=labelsize)