栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

Matplotlib:在刻度之间移动刻度标签

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Matplotlib:在刻度之间移动刻度标签

正如您所注意到的,它们默认情况下处于居中状态,您通过指定来覆盖默认行为

extent=[0, width, height, 0]

有很多方法可以解决此问题。一种是使用

pcolor
和设置edgecolors和linestyles看起来像网格线(你的实际需要
pcolor
,而不是
pcolormesh
为这个工作)。但是,您必须像
imshow
默认情况下那样更改范围以使刻度线位于中心。

import matplotlib.pyplot as pltimport numpy as npdata = np.random.random((10,10))labels = 'abcdefghij'fig, ax = plt.subplots()im = ax.pcolor(data, cmap='gray', edgecolor='black', linestyle=':', lw=1)fig.colorbar(im)# Shift ticks to be at 0.5, 1.5, etcfor axis in [ax.xaxis, ax.yaxis]:    axis.set(ticks=np.arange(0.5, len(labels)), ticklabels=labels)plt.show()

或者,您可以打开次网格并将其放置在像素边界处。由于您需要固定标签,因此我们将手动设置所有内容。否则,a

MultipleLocator
会更有意义:

import matplotlib.pyplot as pltimport numpy as npdata = np.random.random((10,10))labels = 'abcdefghij'fig, ax = plt.subplots()im = ax.imshow(data, cmap='gray', interpolation='none')fig.colorbar(im)# Set the major ticks at the centers and minor tick at the edgeslocs = np.arange(len(labels))for axis in [ax.xaxis, ax.yaxis]:    axis.set_ticks(locs + 0.5, minor=True)    axis.set(ticks=locs, ticklabels=labels)# Turn on the grid for the minor ticksax.grid(True, which='minor')plt.show()



转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/574823.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号