Как построить непрерывную цветную полосу вместо дискретной? - PullRequest
1 голос
/ 11 июля 2019

Я контурирую некоторые 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)

Код работает и выглядит хорошо, но цветовая шкала дискретна, и я хочу, чтобы она была непрерывной. Что я делаю неправильно? Данные представлены в двухмерных массивах. Я проделал некоторую обширную обработку данных, чтобы не показывать полный код, кроме построения графиков. Example output from above code

1 Ответ

1 голос
/ 11 июля 2019

Насколько я знаю, нет способа получить настоящую непрерывную цветовую шкалу.Попробуйте добавить гораздо больше уровней.Таким образом, он будет больше похож на непрерывную цветную полосу.

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)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...