Matplotlib 条形图 - 有些条形不可见并且宽度似乎不同[重复]

2024-04-27

该问题与 matplotlib 条形图有关。具体来说,当我绘制条形图时,有些条形不可见。

Dots and bars uses the same data series so should be in the same places Dots and bars uses the same data series so should be in the same places.

我不知道这个问题的根源是什么,这就是我发布这个问题的原因。 我还注意到,对于同一个图,当我将窗口放大到全屏时,缺失的条会神奇地出现

The same data series as in the first picture, just full screen window The same data series as in the first picture, just full screen window.

当我改变绘图的颜色时也会发生同样的情况,所以假设我使用:

artist = plot.bar(x_data_series, y_data_series, color="black")

现在我有这个不完整的图表,但是当我使用时(只是之后第二次设置颜色):

artist = plot.bar(x_data_series, y_data_series, color="black")
matplotlib.artist.setp(artist, color="black")

我明白了:

Now all bars are visible Now all bars are visible.

当我放大这个不完整的图表时,也会发生同样的情况:

Here also all bars are visible Here also all bars are visible.

更重要的是,“看不见的条”,当它们可见时,它们似乎比其他条粗一点,但是它们在艺术家属性中的宽度与您在此处看到的相同:

One of this bars is the thicker one and the other the "normal" one, both are 0.8 in width One of this bars is the thicker one and the other the "normal" one, both are 0.8 in width.

只是为了向您提供更多信息,这是嵌入在 tkinter 中的图表。 以下是图形、画布和轴(父框架只是放置绘图的框架):

figure = Figure(dpi=100)
plot = figure.add_subplot(111)
canvas = FigureCanvasTkAgg(figure, parent_frame)

我找到的“解决方法”对我来说并不令人满意,我真的很想找到问题的根源,而且宽度问题是我无法弄清楚的。


条形宽度为0.8表示条形的宽度为 0.8 个数据单位。在约 500 像素宽的图表上显示约 500 个数据单元意味着条形图约 0.8 像素宽。或者换句话说,看到该条的机会为 80%,或者平均而言,每五个条可能不会显示。所以这个结果还是比较值得期待的。

放大时也是如此。很可能会看到条形图覆盖 1 个像素,但有些条形图宽度为 2 个像素,因为条形图宽度介于 1 到 2 个像素之间。

使用时看到每个条的原因setp(artist, color="black")该颜色适用于栏及其边缘。边缘为 1 点,即比像素稍大,这样每个条形都是可见的。

最后看来你要么想要一个条形图。在这种情况下,使条形图成为真正的条形图,并在数据单位中具有一些有意义的宽度。 或者,您可能需要折线图。 IE。绘制一个stem情节在这里可能有意义。

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

Matplotlib 条形图 - 有些条形不可见并且宽度似乎不同[重复] 的相关文章

  • Windows 中的信号处理

    在Windows中 我试图创建一个等待SIGINT信号的python进程 当它收到SIGINT时 我希望它只打印一条消息并等待SIGINT的另一次出现 所以我使用了信号处理程序 这是我的 signal receiver py 代码 impo
  • 从两个字典创建一个新列表

    这是一个关于Python的问题 我有以下字典列表 listA t 1 tid 2 gtm 3 c1 4 id 111 t 3 tid 4 gtm 3 c1 4 c2 5 id 222 t 1 tid 2 gtm 3 c1 4 c2 5 id
  • 添加反斜杠而不转义[重复]

    这个问题在这里已经有答案了 我需要逃离 字符串中的 字符 问题是每当我string string replace 结果是 添加额外的反斜杠来转义原始反斜杠 如何删除这个多余的反斜杠 结果 仅显示 实际上字符串是 gt gt gt str g
  • 如何在Redis中从hmset()切换到hset()?

    我收到弃用警告 即 Redis hmset 已弃用 请改用 Redis hset 但是 hset 采用第三个参数 我不知道是什么name应该是 info users 10 timestamp datetime utcnow strftime
  • BeautifulSoup 抓取街道地址

    我正在使用最底部的代码来获取weblink 以及清真寺名称 不过我也想得到面值 and 街道地址 请帮助我被困住了 目前我得到以下信息 Weblink div class subtitleLink a href http www salat
  • 使用 gin 索引和 sqlalchemy 返回排名搜索结果

    我为全文搜索设置了 GIN 索引 我想获取与搜索查询匹配的记录列表 按排名排序 记录与搜索查询的匹配程度 对于结果 我只需要记录及其列 不需要用于排序的实际排名值 我有以下查询 它运行良好并从我的 postgresql 数据库返回预期结果
  • 散景服务器获取鼠标位置

    我正在开发一个带有散景 0 12 2 的交互式应用程序 它根据特定的交互更新绘图 现在 我使用滑块来更改图中字形的位置 但实际上我想访问鼠标在特定图中的位置 数据集是一个多维矩阵 张量 密集数据 每个图在特定位置显示一个维度 如果我更改一个
  • Python Pandas groupby、排名,然后根据自定义排名分配值

    问题设置 大熊猫数据框 df pd DataFrame Group A A A A A A A A A Subgroup Group 1 Group 1 Group 1 Group 1 Group 1 Group 1 Group 2 Gro
  • 为线条指定颜色

    我试图在 matplotlib 中绘制可变数量的行 其中 X Y 数据和颜色存储在 numpy 数组中 如下所示 有没有办法将颜色数组传递到绘图函数中 这样我就不必采取额外的步骤来单独为每条线分配颜色 我是否应该将 RGB 颜色数组转换为另
  • 在 Qt Creator 中相互公开 QML 组件

    我正在使用 Qt Quick 和 PySide2 开发仪表板应用程序 但在 Qt Creator 的设计模式中公开我的 QML 组件时遇到问题 我的文件夹结构如下所示 myapp mycomponents component1 qml co
  • 显示多索引 pandas 数据帧的前 10 行

    我有一个多级索引 pandasDataFrame第一级在哪里year第二级是username 我只有一列已经按降序排序 我想显示每个索引级别 0 的前 2 行 我拥有的 count year username 2010 b 677 a 50
  • 为 pandas 数据框中的两列创建邻接矩阵

    我有一个以下形式的数据框 index Name A Name B 0 Adam Ben 1 Chris David 2 Adam Chris 3 Ben Chris 我想获得邻接矩阵Name A and Name B ie Adam Ben
  • Python Pandas:将参数传递给 agg() 中的函数

    我试图通过使用不同类型的函数和参数值来减少 pandas 数据框中的数据 但是 我无法更改聚合函数中的默认参数 这是一个例子 gt gt gt df pd DataFrame x 1 np nan 2 1 y a a b b gt gt g
  • 删除 matplotlib 中的行

    我需要删除子图上的所有线条 然后重新绘制它们 我正在创建一个重绘函数 以便在添加 删除某些线条时使用 我该怎么做 如果您有Axes存储的对象 您可以通过lines member ax fig add subplot 111 ax plot
  • 无法运行bjam编译boost python教程

    我正在尝试跟随本教程 http www boost org doc libs 1 55 0 libs python doc tutorial doc html python hello html关于为 Windows 的 python 包装
  • 鉴于我的代码是开源的并且我在服务器上运行,并且我接受近乎原始的代码,那么对我来说最糟糕的情况是什么?

    我正在研究几个案例 在这些案例中 接受近乎原始的代码会容易得多 所以 如果你不能使用 lambda 你能对表达式做的最糟糕的事情是什么 以及如何做 如果不能使用 import 那么对执行的代码最糟糕的情况是什么 如何使用 不能使用 X 扫描
  • 如何将多索引数据帧与单个索引数据帧连接?

    df1 的单个索引与 df2 的多索引的子级别匹配 两者都有相同的列 我想将 df1 的所有行和列复制到 df2 它类似于这个线程 将单索引 DataFrame 复制到多索引 DataFrame https stackoverflow co
  • Python:ConfigParser.NoSectionError:没有部分:“TestInformation”

    我使用上面的代码收到 ConfigParser NoSectionError No section TestInformation 错误 def LoadTestInformation self config ConfigParser Co
  • 在Python中:检查文件修改时间是否早于特定日期时间

    我用 C 编写了以下代码来检查文件是否已过期 DateTime lastTimeModified file getLastTimeModified if lastTimeModified HasValue File does not exi
  • 仅在满足条件时添加到字典

    我在用urllib urlencode构建 Web POST 参数 但是有一些值我只想在除None为他们而存在 apple green orange orange params urllib urlencode apple apple or

随机推荐