python - cmap.set_under() 和 cmap.set_over() 没有出现在颜色栏中
问题描述
我正在尝试绘制一个颜色条,我尝试使用cmap.set_under()
and 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')
先感谢您
解决方案
fig.colorbar(..., extend='both')
在颜色条的顶部和底部添加小三角形箭头,以指示颜色的上色和下色。除了“both”,其他选项是“min”和“max”,默认为“neither”。有关更多信息,请参阅文档。
请注意,默认下颜色等于颜色图的最低颜色(类似于默认上颜色)。如果这些是所需的值,则不需要明确设置它们。
推荐阅读
- python - tkinter - 如何从类创建的条目中获取文本
- node.js - Google Cloud Run 中的结构化日志未被解析(使用 Winston 进行日志记录)
- mysql - 在codeigniter中将int date插入数据库表中
- sql - 如何计算特定日期第一次出现唯一 ID 的次数?
- maven - 不再支持源选项 6。使用 7 或更高版本
- c++ - 我不能通过引用捕获传递 lambda
- python-3.x - 如何将长列表拆分为具有相同成员的每一列
- mule - NameResolvingRequestBuilder$RotateIpListFactory 从骡子流调用外部休息 URL 时出错
- android - 重复调用 Room Persistence Library 会截断本地文件表
- ios - apns 令牌不是唯一的