Python Matplotlib - 未对齐的网格线和颜色填充

2024-03-08

我使用以下代码来生成一种二进制热图:

import numpy as np
import matplotlib.colors as mlc
import matplotlib.pyplot as mlp

states = ['AAAA', 'BBBB', 'CCCC', 'DDDD']
walk = [1, 2, 3, 2, 3, 2, 3, 2, 3, 2]

states_len = len(states)
walk_len = len(walk)

img = np.zeros((states_len, walk_len), dtype=float)

for i, s in enumerate(walk):
    img[s, i] = 1.0

figure, ax = mlp.subplots()

color_map = mlc.LinearSegmentedColormap.from_list('ColorMap', [(1.000, 1.000, 1.000), (0.984, 0.501, 0.447)])
ax.imshow(img, cmap=color_map, interpolation='none')

ax.set_xlabel('Steps', fontsize=13)
ax.set_xticks(np.arange(0, walk_len, 1))
ax.set_xticks(np.arange(-0.5, walk_len, 1), minor=True)
ax.set_xticklabels(np.arange(1, walk_len + 1, 1))

ax.set_ylabel('States', fontsize=13)
ax.set_yticks(np.arange(0, states_len, 1))
ax.set_yticks(np.arange(-.5, states_len, 1), minor=True)
ax.set_yticklabels(states)

ax.grid(which='minor', color='k')

ax.set_title('Walkplot (Sequence)', fontsize=15, fontweight='bold')

它产生了奇怪的结果:

您可能会注意到,色点看起来与网格方块没有对齐。最重要的是,有时网格线没有统一的尺寸,有些看起来比其他的大。

我认为它一定与纵横比或图形大小有关,但我对潜在的修复方案一无所知。我该如何解决这个问题?

我当前的设置:

  • Python 3.6 x64
  • 皮查姆 2018.1

正如评论指出的那样,问题似乎会在更高的 DPI 下消失,对于未来的用户,如下所示,

50 DPI - 图 8、6

100 DPI - 图 8. 6

但它也受到以下因素的影响figsize参数,设置为matplotlib rcParams或与figsize(height, width)在建设中figure- 较大的数字需要更高的 DPI 才能消除显示问题(尽管可能需要查看全尺寸图像才能看到效果,而不是内联显示),即

50 DPI - 图尺寸 20,16

100 DPI - 图尺寸 20,16

300 DPI - 图尺寸 20,16

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python Matplotlib - 未对齐的网格线和颜色填充 的相关文章

随机推荐

  • 如何设置Hubot基本权限?

    如何设置基本用户权限 以便用户无法运行 Hubot die 或 Hubot show storage 等命令 我可以看到有一个名为 hubot auth 的脚本 但这似乎是为了在其他脚本中实现它 而不是控制现有命令 有一个小章节关于它使用
  • 如何在画布上制作自定义可编辑文本框,背景随文本一起传播?

    我没有在flutter中使用过canvas 但我认为像图像中的编辑文本框可以通过canvas来实现 背景随着文本长度而扩展 如果一行中的文本长度为 0 则没有背景 如果您有任何代码或建议可以这样做 请提供帮助 这里是代码 class Tex
  • 由 Peer pymongo 重置连接

    我有一些文档 我必须从 mongodb 获取并将其设置到 memcache 这是代码 import memcache from pymongo import MongoClient db mongo client job db JobPar
  • 如何在训练自动编码器(回调)期间将keras中的输入随机设置为零?

    我正在联合训练具有 2 个独立输入路径的 2 个自动编码器 并且我想将其中一个输入路径随机设置为零 我将 Tensorflow 与 keras 后端 功能 API 一起使用 我正在计算反向传播的联合损失 两个损失的总和 A gt A B g
  • 重新排序数组时如何用 Angular-Animate 触发 ng-move?

    使用角度1 2 4 我试图弄清楚当重复的项目重新排序时如何触发 ng animate 的移动 我知道 ng animate 正在工作 因为进入 离开和移动的动画都是在应用过滤器时触发的 但是 当我使用某些数组方法对数组重新排序时 不会触发任
  • 从 ng-repeat [duplicate] 中删除重复项

    这个问题在这里已经有答案了 我有一个非常简单的数组 其中有重复的值 我的数组是这样的 scope type Bar Pie Line Line Line Line Line Line map Line Bar Pie Pie Pie Pie
  • Android 无法将 FAB 按钮锚定到 BottomSheet

    我正在尝试将 FAB 按钮附加到 BottomSheet 视图 就像 Google 地图一样 然而我无法让它发挥作用 这是 FAB 按钮的代码
  • 如何使用 colorbox 在页面上显示隐藏的 div 而无需进行硬编码?

    我正在使用 Colorbox 在我的页面上显示隐藏 div 的 html 内容 我可以让它与以下内容完美配合 a colorbox colorbox width 600px inline true href 344 这将显示 ID 为 34
  • C 结构大小不一致[重复]

    这个问题在这里已经有答案了 可能的重复 如何找到结构体的大小 https stackoverflow com questions 143025 how do i find the size of a struct 结构体的内存大小不同 ht
  • 比较不同数组的范围值

    我正在尝试将 arr3 的范围值与 arr4 的范围值进行比较 但我没有得到所需的输出 请建议我修改以下代码以获得输出 3 4 5 6 7 9 10 11 12 14 15 不重复值 例如5和10 并且总匹配 11 my arr3 1 5
  • 为什么不继承List

    在计划我的计划时 我经常从这样的一系列思考开始 足球队只是足球运动员的名单 因此 我应该用 var football team new List
  • Chrome 开发者工具:如何禁用代码自动完成?

    我正在源面板中尝试使用 Chrome DevTool 漂亮的 Workspaces in devtools 代码编辑器 其设置大致类似于此处接受的答案 Chrome 开发者工具 在单独的视图 垂直平铺中查看控制台和源视图 https sta
  • Mysql 查询运行速度更快

    表结构 CREATE TABLE IF NOT EXISTS logs id bigint 20 unsigned NOT NULL AUTO INCREMENT user bigint 20 unsigned NOT NULL type
  • 如何捕获 Android 上的应用流量

    我正在尝试从 Android 手机上的应用程序捕获流量 尽管我已在手机上设置代理并且可以捕获来自手机的所有其他互联网流量 使用 Charles 代理 但我看不到任何流量这一个应用程序 这是如何完成的以及如何捕获流量 UPDATE 如果您需要
  • 将 UTC 时间戳转换为任何其他区域时间戳

    我正在使用 MongoDB 来存储我的数据 Mongo 默认以 UTC 格式存储时间戳 我们在不同时区处理数据 我正在努力将 UTC 时间戳转换为 PDT 或 IST 时间戳 尝试构造一个方法来传递时区 我的时间戳将转换为其中 和时间戳 U
  • 用户配置文件的布局不适用于 asp.net core 3.0

    在 Asp core 3 0 上 当用户单击其个人资料 Areas Identity Pages Account Manage layout cshtml 时 我的布局页面无法正常工作 当我登录后单击默认电子邮件时 我会看到 Manage
  • 重置 R 实例

    是否可以重置 R 实例 例如 如果我使用了命令 x lt 1 10 plot x x 从而用 x 变量污染了系统 在这种状态下 我可以在不关闭 R 并再次启动它的情况下恢复到干净状态吗 您可以使用以下命令从工作区中删除所有变量 rm lis
  • protobuf-net 不比二进制序列化快吗?

    我编写了一个程序 使用 XMLSerializer BinaryFormatter 和 ProtoBuf 序列化 Person 类 我认为 protobuf net 应该比其他两个更快 Protobuf 序列化比 XMLSerializat
  • MVC 4 中的防伪 cookie 令牌和表单字段令牌不匹配

    我在 ASP NET MVC 4 中使用默认登录模块 我没有更改默认应用程序中的任何代码 并将其托管在共享服务器上 我使用默认登录页面登录后 我让浏览器闲置了一段时间 然后 当我尝试执行任何控制器操作时 显然应用程序会重定向到登录页面 Au
  • Python Matplotlib - 未对齐的网格线和颜色填充

    我使用以下代码来生成一种二进制热图 import numpy as np import matplotlib colors as mlc import matplotlib pyplot as mlp states AAAA BBBB CC