cmap.set_under () и cmap.set_over () не отображаются на панели цветов - PullRequest
0 голосов
/ 14 июля 2020

Я пытаюсь построить цветовую полосу, и я попытался использовать cmap.set_under() и cmap.set_over(), однако они не отображаются на графике, может ли кто-нибудь мне помочь?

Вот код:

city = 'Portugal, Lisbon'
G = ox.graph_from_place(city, network_type='drive', simplify=True)

G_nx = nx.relabel.convert_node_labels_to_integers(G)

nc =[whatever you would like]
ns=[whatever you would like]

cmap = copy(plt.cm.get_cmap('inferno_r'))
cmap.set_over((0.001462, 0.000466, 0.013866, 1.0))
cmap.set_under((0.988362, 0.998364, 0.644924, 1.0))
norm=plt.Normalize(vmin=0.8, vmax=1.5)
sm = mpl.cm.ScalarMappable(norm=norm, cmap=cmap)
sm.set_array([])

fg_color = 'black'
fig, ax = ox.plot.plot_graph(G_nx, node_color=nc, node_size=ns, edge_linewidth=0.8, figsize = (80,40), show=False, bgcolor = 'white')
cb = fig.colorbar(cm.ScalarMappable(norm=norm, cmap=cmap), ax=ax, orientation='vertical', aspect=50, shrink=0.8)
cb.set_label('r', fontsize = 60, color = fg_color, rotation = 'horizontal')
cb.ax.tick_params(labelsize=40, color = fg_color)
# set colorbar tick color
cb.ax.yaxis.set_tick_params(color=fg_color)


cb.outline.set_edgecolor(fg_color)
cb.cmap.set_over('k')


plt.setp(plt.getp(cb.ax.axes, 'yticklabels'), color=fg_color)

fig.set_frameon(True)
fig.savefig('dhgdhg.png', facecolor=fig.get_facecolor(), bbox_inches='tight')

Заранее спасибо

1 Ответ

1 голос
/ 14 июля 2020

fig.colorbar(..., extend='both') добавляет маленькие треугольные angular стрелки вверху и внизу шкалы цветов, чтобы указать цвет над и под . Вместо «оба» другие варианты - «мин» и «макс», по умолчанию - «ни один». Для получения дополнительной информации см. docs .

Обратите внимание, что нижний цвет по умолчанию равен самому низкому цвету цветовой карты (аналогично цвету по умолчанию). Если это желаемые значения, их не нужно устанавливать явно.

...