首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >pcolormesh中的1像素网格线

pcolormesh中的1像素网格线
EN

Stack Overflow用户
提问于 2016-04-19 13:59:38
回答 2查看 2.3K关注 0票数 2

在matplotlib中使用波洛梅什时,我可以使用edgecolor参数获得网格。我希望这个网格正好是一个像素宽,没有反混叠:

代码语言:javascript
复制
plt.pcolormesh(x_bin_edges, y_bin_edges, z, edgecolor='k', linewidth=1, antialiased=False)

但这段代码为我提供了一个2-3像素宽的网格(添加了微小的红色破折号作为视觉指南):

进一步减小线宽(例如0.1)给出的网格线宽为1-2像素:

进一步降低线宽似乎没有任何作用。如何将所有网格线降至1像素宽?

我使用Agg后端在python 2.7.8中的matplotlib 1.4.2中创建png-文件。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2019-05-27 09:31:29

因为这个答案并没有真正说明如何设置pcolormesh的线宽参数来得到精确的1像素宽的网格线,而且我花了一些精力对它进行反向工程,所以我发布了一些对我有用的代码,并希望能够帮助其他想避免使用ax.grid的人,与imshow显示的单元相比,ax.grid常常是一个像素不对齐的。

my_dpi设置为监视器的dpi值,并告诉您的图形这是您正在使用的dpi值,并使用此公式计算线宽。

代码语言:javascript
复制
my_dpi = 96.0
plt.figure(dpi=my_dpi)

my_linewidth=my_dpi/(1024*32)

这似乎适用于我一贯确保精确1像素宽的网格线与pcolormesh

票数 2
EN

Stack Overflow用户

发布于 2016-08-17 11:53:19

基于的回答,我使用了ax.grid,它生成了一个像素网格线,就像我想要的那样:

代码语言:javascript
复制
fig, ax = plt.subplots(1, 1)

ax.grid(True, which='minor', axis='both', linestyle='-', color='k')

ax.set_xticks(lon_grid, minor=True)
ax.set_yticks(lat_grid, minor=True)

ax.set_xlim(lon_grid[0], lon_grid[-1])
ax.set_ylim(lat_grid[0], lat_grid[-1])
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36720640

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档