如何将一个 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 图形覆盖在另一图形上 的相关文章

  • 使用 Pandas 和 Group By 绘制堆叠直方图

    我正在使用如下所示的数据集 Gender Height Width Male 23 4 4 4 Female 45 4 4 5 我想可视化高度和宽度的堆叠直方图 我希望每个图有两个堆叠的直方图 每个性别一个 这是文档中的堆叠直方图 如果存在
  • 如何消除 matplotlib 轴的相对偏移

    当我尝试对具有足够大数字的范围进行绘图时 我得到一个所有刻度都有相对偏移的轴 例如 plot 1000 1001 1002 1 2 3 我在横坐标轴上得到这些刻度 0 0 0 5 1 0 1 5 2 0 1e3 问题是如何删除 1e3并得到
  • python 中使用 scipy 截断正态分布

    我正在尝试使用截断正态分布scipy在Python3 我想做一些简单的事情 绘制以 0 5 为中心 范围从 0 到 1 的截断法线的 pdf 我有以下代码行 from scipy import truncnorm import matplo
  • 将图例添加到曲面图

    我正在尝试向表面图添加图例 但无法这样做 这是代码 import numpy as np from mpl toolkits mplot3d import Axes3D import matplotlib pyplot as plt imp
  • 带有 twinx() 的辅助轴:如何添加到图例

    我有一个带有两个 y 轴的图 使用twinx 我还给线条添加了标签 并想用legend 但我只成功获取图例中一个轴的标签 import numpy as np import matplotlib pyplot as plt from mat
  • Pandas,条形图注释

    如何正确给 Pandas 条形图添加注释 我正在跟进使用 Pandas 和 MPL 进行条形图注释 http robertmitchellv com blog bar chart annotations with pandas and mp
  • 为什么 matplotlib 底图没有绘制地图中某些区域的颜色?

    下面的代码应该为越南的所有州着色 import pandas as pd import matplotlib pyplot as plt from mpl toolkits basemap import Basemap fig ax plt
  • 在 matplotlib 中将 3D 背景更改为黑色

    我在将 3D 图表的背景更改为黑色时遇到问题 这是我当前的代码 当我将facecolor设置为黑色时 它会将图表内部更改为灰色 这不是我想要的 fig plt figure fig set size inches 10 10 ax plt
  • matplotlib 中的固定大小矩形?

    Is there any way to plot a rectangle spanning the entire length of the X axis but with a fixed and static height of say
  • 如何在Python中使用matplotlib更改日期格式[重复]

    这个问题在这里已经有答案了 可能的重复 使用 matplotlib 在轴标签中创建带有日期和时间的图表 https stackoverflow com questions 5498510 creating graph with date a
  • 在Python matplotlib中的plot_surface之上绘制单个3D点

    我有一些代码可以使用 matplotlib 在 Python 中绘制 3D 曲面 import math import numpy as np import matplotlib pyplot as plt from pylab impor
  • 为什么 Jupyter Notebook 在更新绘图时会创建重复的绘图

    我正在尝试在 Jupyter Notebook 中绘制每秒更新一次的绘图 现在 我只有一个可以运行的简单代码 matplotlib inline import time import pylab as plt import numpy as
  • 如果值小于零,则更改条形图的颜色并填充空白

    我创建了一个数据框 df tail 20 Speed 130 0 000272 131 0 000219 132 0 000178 133 0 000234 134 0 000261 135 0 000281 136 0 000244 13
  • matplotlib 中没有边缘的阴影矩形补丁

    当尝试将带有填充图案的矩形面片添加到绘图中时 在指定填充值时似乎无法将关键字参数 edgecolor 设置为 none 换句话说 我试图添加一个没有边缘但有图案填充的阴影矩形 这似乎不起作用 仅当我还允许在矩形面片周围绘制边缘时 该图案才会
  • 拟合泊松直方图

    I am trying to fit a curve over the histogram of a Poisson distribution that looks like this 我修改了拟合函数 使其类似于泊松分布 其中参数 t 作
  • 如何缩放图像的一部分并插入到 matplotlib 中的同一图中

    我想缩放数据 图像的一部分并将其绘制在同一个图中 看起来有点像这个图 是否可以在同一图中插入缩放图像的一部分 我认为可以用子图绘制另一个图形 但它绘制了两个不同的图形 我还阅读了添加补丁以插入矩形 圆形 但不确定将图像的一部分插入到图中是否
  • 如何使绘图的 xtick 标签成为简单的绘图?

    我不想用单词或数字作为 x 轴的刻度标签 而是想绘制一个简单的绘图 由直线和圆圈组成 作为每个 x 刻度的标签 这可能吗 如果是这样 在 matplotlib 中处理它的最佳方法是什么 我会删除刻度标签并将文本替换为patches http
  • 绘制 Pandas OLS 线性回归结果

    我将如何绘制我从 pandas 进行的线性回归的线性回归结果 import pandas as pd from pandas stats api import ols df pd read csv Samples csv index col
  • Seaborn:带有边缘直方图的 kdeplot

    我正在使用一个kdeplot https seaborn pydata org generated seaborn kdeplot html绘制两个二元分布的密度 如下所示df c and df n有两个 Pandas DataFrame
  • matplotlibplot_曲面图

    matplotlib 教程提供了如何绘制球面的一个很好的示例 from mpl toolkits mplot3d import Axes3D import matplotlib pyplot as plt import numpy as n

随机推荐