如何将一个 pyplot 图形覆盖在另一图形上

2024-01-05

搜索可以轻松揭示如何在一个图上绘制多个图表,无论是使用相同的绘图轴、第二个 y 轴还是子图。更难发现的是如何将一个图形叠加到另一个图形上,如下所示:

该图像是使用位图编辑器覆盖图像来准备的。我很容易创建单独的图,但无法弄清楚如何将它们组合起来。我希望一行代码就足够了,但是它是什么呢?我是这样想象的:

    bigFig = plt.figure(1, figsize=[5,25])
    ...
    ltlFig = plt.figure(2)
    ...
    bigFig.overlay(ltlFig, pos=[x,y], size=[1,1])

我已经确定可以使用figure.add_axes,但要正确定位重叠图的位置非常具有挑战性,因为参数是分数,而不是第一个图中的 x,y 值。它还[在我看来 - 我错了吗?] 对图表的绘制顺序施加了限制,因为必须先完成主图,然后再依次添加其他图。

实现这一目标的 pyplot 方法是什么?


要创建插入轴,您可以使用mpl_toolkits.axes_grid1.inset_locator.inset_axes.

轴坐标中插入轴的位置

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

fig, ax= plt.subplots()

inset_axes = inset_axes(ax,
                    width=1,                     # inch
                    height=1,                    # inch
                    bbox_transform=ax.transAxes, # relative axes coordinates
                    bbox_to_anchor=(0.5,0.5),    # relative axes coordinates
                    loc=3)                       # loc=lower left corner

ax.axis([0,500,-.1,.1])
plt.show()

数据坐标中插入轴的位置

import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1.inset_locator import inset_axes

fig, ax= plt.subplots()

inset_axes = inset_axes(ax,
                    width=1,                     # inch
                    height=1,                    # inch
                    bbox_transform=ax.transData, # data coordinates
                    bbox_to_anchor=(250,0.0),    # data coordinates
                    loc=3)                       # loc=lower left corner

ax.axis([0,500,-.1,.1])
plt.show()

以上两者都产生相同的情节

(有关此解决方案可能存在的缺点,请参阅插入轴的特定位置 https://stackoverflow.com/questions/45378918/specific-location-for-inset-axes)

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

如何将一个 pyplot 图形覆盖在另一图形上 的相关文章

  • Jupyter 笔记本中未显示绘图

    我正在尝试为 Anscombe 数据集创建 2x2 图 加载数据集并分离数据集中的每个类 import seaborn as sns import matplotlib pyplot as plt anscombe sns load dat
  • 为什么 matplotlib 默认不保存整个图形?

    这可能是几乎每个使用 matplotlib 的人都会遇到的问题 如果您生成一个图形 通常包含轴标签和图例 并使用默认设置保存它 您将获得裁剪后的图像 演示代码 import matplotlib pyplot as plt def plot
  • 无法将matplotlib安装到pycharm

    我最近开始使用Python速成课程学习Python编程 我陷入困境 因为我无法让 matplotlib 在 pycharm 中工作 我已经安装了pip 我已经通过命令提示符使用 pip 安装了 matplotlib 现在 当我打开 pych
  • 根据第三个变量更改散点图中的标记样式

    我正在处理多列字典 我想绘制两列 然后根据第三列和第四列更改标记的颜色和样式 我很难改变 pylab 散点图中的标记样式 我的方法适用于颜色 不幸的是不适用于标记样式 x 1 2 3 4 5 6 y 1 3 4 5 6 7 m k l l
  • 如何在 python 中读取 32 位 TIFF 图像?

    我想用 python 读取 32 位浮点图像文件来进行一些图像分析 我努力了 import matplotlib pyplot as plt im plt imread path to file tif 但是 这仅将数据读取为 8 位整数值
  • 将自定义误差线添加到 seaborn regplot 和 residplot

    有没有一种方法可以将自定义错误栏添加到seaborn regplot和residplot中 就像使用yerr对matplotlib错误栏所做的那样 例子在这里 如果我只是添加 yrr 参数就会发生错误 import seaborn as s
  • 导入 matplotlib.pyplot 时出错

    当我跑步时import matplotlib pyplot as plt 我收到以下错误消息 ImportError Traceback most recent call last
  • 有什么方法可以从seaborn小提琴图中得到迷你箱线图吗?

    我正在尝试绘制一系列很长的箱线图 我喜欢里面绘制的微型箱线图的美感小提琴情节 https seaborn pydata org generated seaborn violinplot html 通过seaborn violinplot 的
  • 更改 x 轴比例

    我使用 Matlab 创建了这个图 使用 matplotlib x 轴绘制大数字 例如 100000 200000 300000 我想要 1 2 3 和 10 5 之类的值来指示它实际上是 100000 200000 300000 有没有一
  • 在 Windows 上使用带有对数刻度的 matplotlib 时出现 Unicode 错误

    我正在使用 python 2 6 和 matplotlib 如果我运行 matplotlib 库页面中提供的示例 histogram demo py 它工作正常 我已经大大简化了这个脚本 import numpy as np import
  • 更改 3D 图形颜色 (matplotlib)

    我使用以下代码在 matplotlib 中绘制了 3D 图形 Previously defines lists of data to plot fig plt figure ax fig add subplot 111 projection
  • matplotlibplot_surface命令的颜色条

    我修改了mplot3d示例代码 http matplotlib sourceforge net examples mplot3d surface3d demo2 html在保罗的帮助下完成我的申请 代码如下 from mpl toolkit
  • 带表格格式的 Matplotlib 条形图

    我在图的底部添加了一个表格 但它存在许多问题 右边的内边距太多了 左边的填充太少 底部没有填充物 单元格对于其中的文本来说太小 该表距离图的底部太近 属于行名称的单元格的颜色未与条形图的颜色相匹配 我要发疯了 去摆弄这个 有人可以帮我解决这
  • import matplotlib.pyplot 给出 AttributeError: 'NoneType' 对象没有属性 'is_interactive'

    我尝试在 Pycharm 控制台中导入 matplotlib pyplt import matplotlib pyplot as plt 然后作为回报我得到 Traceback most recent call last File D Pr
  • Seaborn 将 xticks 从 float 更改为 int

    我正在绘制一个图表 其中seaborn为sns pylab为plt plt figure figsize 10 10 sns barplot y whatever y x whatever x data mydata plt xticks
  • 如何更改刻度标签字体大小

    在 matplotlib 图中 如何使用以下命令设置刻度标签的字体大小ax1 set xticklabels 更小 此外 如何将其从水平旋转为垂直 其实还有更简单的方法 我刚刚发现 import matplotlib pyplot as p
  • 来自 pandas 数据帧的烛台图,用日期替换索引

    此代码给出了带有移动平均线的烛台图 但 x 轴位于索引中 我需要 x 轴位于日期中 需要做什么改变 import numpy as np import pandas as pd import matplotlib pyplot as plt
  • 如何在matplotlib中调整x轴

    I have a graph like this x轴上的数据表示小时 所以我希望x轴设置为0 24 48 72 而不是现在的值 很难看到 0 100 之间的数据 fig1 plt figure ax fig1 add subplot 11
  • 如何在 pylab/pyplot 中裁剪极坐标图

    我有一个极坐标图 其中theta从 0 到 pi 2 变化 所以整个情节都在第一季度 如下所示 pylab inline X linspace 0 pi 2 polar X cos 6 X 2 source schurov com http
  • IndexError - 具有匀称形状的笛卡尔 PolygonPatch

    我曾经使用 shapely 制作一个圆圈并将其绘制在之前填充的图上 这曾经工作得很好 最近 我收到索引错误 我将代码分解为最简单的操作 但它甚至无法执行最简单的循环 import descartes import shapely geome

随机推荐