python - 使用带有 imshow matplotlib 的网格时删除刻度
问题描述
在这个imshow
问题中,他们回答了如何在matplotlib中正确使用网格。我正在尝试和他们做同样的事情,但我想删除所有刻度(x 和 y)。当我尝试这样做时,它也消除了网格,我只显示了没有网格和刻度的图像。我的代码是:
fig, ax = plt.subplots()
data = np.random.rand(20,20)
ax.imshow(data)
ax.set_xticks(np.arange(20))
ax.set_xticklabels(np.arange(20))
ax.set_xticks(np.arange(20)+0.5, minor=True)
ax.grid(which='minor',color='w',axis='x',linewidth=6)
ax.axes.xaxis.set_visible(False)
ax.axes.yaxis.set_visible(False)
plt.show()
有没有人如何在保持网格(在我的情况下沿着 x 轴)的同时删除刻度?
解决方案
删除轴(通过 set_visible(False))也将删除网格。
但是,有一种解决方法将脊椎和刻度线/标签分别设置为不可见:
fig, ax = plt.subplots()
data = np.random.rand(20,20)
ax.imshow(data)
ax.set_xticks(np.arange(20))
ax.set_xticklabels(np.arange(20))
ax.set_xticks(np.arange(20)+0.5, minor=True)
ax.grid(which='minor',color='w',axis='x',linewidth=6)
# set axis spines (the box around the plot) to be invisible
plt.setp(ax.spines.values(), alpha = 0)
# set both tick marks and tick labels to size 0
ax.tick_params(which = 'both', size = 0, labelsize = 0)
plt.show()
给你输出:
请注意,您可能需要调整 xlim/ylim 和网格参数以满足您的需要。
推荐阅读
- wordpress - 在 WordPress Gutenberg Block 插件中包含图像资产
- python - 如何在某些条件下制作一个 numpy 数组?
- python-3.x - 如何更新不同项目中的自定义库?
- ruby-on-rails - 获取 blob 的 url 时图像/png 的未知格式错误
- javascript - 为什么我的函数返回 unicode 替换字符
- jquery - 分页和url中的参数更改后浏览器无法正常工作
- c# - 在地图上显示数据库中最近的实体
- flutter - 在flutter中使用sqflite单击按钮时如何显示数据库的记录?
- php - 如何使用 Laravel 动态创建符号链接
- javascript - 如何在每次导入时获取导出对象的新实例?