Jupyter:在不同的单元格中重新绘制

2023-12-20

我想做这样的事情:

import matplotlib.pyplot as plt
%matplotlib inline
fig1 = plt.figure(1)
plt.plot([1,2,3],[5,2,4])
plt.show()

在一个单元格中,然后在另一个单元格中重新绘制完全相同的图,如下所示:

plt.figure(1) # attempting to reference the figure I created earlier...
# four things I've tried:
plt.show() # does nothing... :(
fig1.show() # throws warning about backend and does nothing
fig1.draw() # throws error about renderer
fig1.plot([1,2,3],[5,2,4]) # This also doesn't work (jupyter outputs some 
# text saying matplotlib.figure.Figure at 0x..., changing the backend and 
# using plot don't help with that either), but regardless in reality
# these plots have a lot going on and I'd like to recreate them 
# without running all of the same commands over again.

我也尝试过这些东西的一些组合,但没有任何效果。

这个问题类似于IPython:如何在不同的单元格中显示相同的图? https://stackoverflow.com/questions/38754107/ipython-how-to-show-the-same-plot-in-different-cells但我并不是特别想update我的情节,我只是想重画它。


我找到了一个解决方案来做到这一点。诀窍是创建一个带有轴的图形fig, ax = plt.subplots()并使用轴进行绘图。然后我们就可以调用fig在任何其他单元格的末尾,我们想要重新绘制该图形。

import matplotlib.pyplot as plt
import numpy as np

x_1 = np.linspace(-.5,3.3,50)
y_1 = x_1**2 - 2*x_1 + 1

fig, ax  = plt.subplots()
plt.title('Reusing this figure', fontsize=20)
ax.plot(x_1, y_1)
ax.set_xlabel('x',fontsize=18)
ax.set_ylabel('y',fontsize=18, rotation=0, labelpad=10)
ax.legend(['Eq 1'])
ax.axis('equal');

This produces First plot of the figure

现在我们可以使用添加更多东西ax object:

t = np.linspace(0,2*np.pi,100)
h, a = 2, 2
k, b = 2, 3
x_2 = h + a*np.cos(t)
y_2 = k + b*np.sin(t)
ax.plot(x_2,y_2)
ax.legend(['Eq 1', 'Eq 2'])
fig

Note how I just wrote fig in the last line, making the notebook output the figure once again. Second plot of the figure!

我希望这有帮助!

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

Jupyter:在不同的单元格中重新绘制 的相关文章

随机推荐

  • 使用 Ansible 在 Windows 上执行 .exe

    我们想要在带有 Ansible 1 8 2 的 Windows Server 2012 上部署应用程序 我已经搜索并找到了a list http docs ansible com list of windows modules htmlWi
  • 如何在视图外评估 Aurelia 插值表达式?

    在 Aurelia 中 假设我有一个包含插值表达式的字符串 Today at value date time 和一些代表绑定上下文的对象 value new Date 有没有办法在视图之外只获取该字符串和该对象 并获取结果格式化字符串 即
  • 如何修复错误消息:“chromedriver.exe”可执行文件可能具有错误的权限[重复]

    这个问题在这里已经有答案了 我正在安装 selenium 的网络驱动程序 但是我收到以下错误 PermissionError Traceback most recent call last usr local lib python3 6 d
  • 排除 Twitter 流中的回复 - tweepy

    我正在使用 tweepy 从 Twitter 的流 api 中提取推文 然后我用它来自动回复该用户 例如 如果我想从中提取实时推文然后回复唐纳德 特朗普 我可以使用 import tweepy from tweepy import Stre
  • 在 Apache Kafka 中,为什么消费者实例不能多于分区?

    我正在学习卡夫卡 阅读这里的介绍部分 https kafka apache org documentation html introduction https kafka apache org documentation html intr
  • Android EditText 以编程方式调整大小

    我有一个视图 其中有两个 LinearLayout 一个包含文本 EditText 和一个按钮 另一个仅包含文本和 EditText 我试图让第二个 EditText 在第二行 的宽 度与第一行的宽度相匹配 我尝试将其设为 TableLay
  • 将数据帧转换为 JSON 时删除空数组字段

    有没有什么方法可以通过不使用那些为空的字段来从 Spark 数据帧创建 json 假设我有一个数据框 name hit songs beatles help hey jude romeo eres mia juliet null 我想将其转
  • 解析 TSV 文件

    我需要解析 TSV 格式的文件 制表符分隔值 我使用正则表达式将文件分解为每一行 但我找不到令人满意的正则表达式来解析每一行 现在我已经提出了这个
  • C# 中对 volatile 变量的赋值

    我对 C 的理解 感谢 Jeff Richter 和 Jon Skeet 认为赋值是 原子的 不同的是 当我们混合读取和写入 递增 递减 时 因此我们需要在互锁上使用方法 如果只有读取和分配 这两个操作都是原子操作吗 public clas
  • 理解 HashMap

    好吧 这是我不明白的地方 如果您尝试使用以下方法检索对象get 方法并返回null 仍然有可能null可以存储为与您提供给的密钥关联的对象get 方法 您可以通过将对象的密钥传递给containsKey 地图的方法 这返回true如果密钥存
  • 如何使用 Gradle 将 Java 代码和 Junit 测试放在一起构建

    我有一个项目 其中主要源代码和该源代码的测试用例保存在同一个包 目录中 每个测试类都是其正在测试的类的名称 末尾附加 Test 因此 如果我有一个 Foo java 那么它旁边就会有一个 FooTest java 我的问题是 如何使用 Gr
  • webshim polyfill 画布在 IE7 模式下无法工作

    我在让 webshims 插件 canvas polyfill 工作时遇到问题 使用 IE7 模式在 IE9 中出现以下错误 SCRIPT438 Object doesn t support property or method fillR
  • 使用 awk / sed 查找并替换文件中的键值对到其他文件

    我有一个键值文件 名为key txt 有一个 分隔器 这是值的显示方式 server name server1 username someuser keyname 123key 我的第二个文件是一个脚本文件 文件中到处都有这些键 它以以下格
  • 用于非零基数组指针分配的 C++ gcc 扩展?

    我正在寻找 gcc 支持的 C 语言扩展来启用非从零开始的数组指针的分配 理想情况下我可以简单地写 include
  • 优化 Cython 中的字符串

    我试图向我们的小组展示 Cython 在增强 Python 性能方面的优点 我已经展示了几个基准 所有这些都通过以下方式实现加速 编译现有的 Python 代码 使用 cdef 静态类型变量 特别是在内循环中 然而 我们的大部分代码都进行字
  • pyvenv 安装错误的 pip 版本

    我正在创建一个 virtualenvpyvenv env但安装的 pip 版本已过时 我可以在虚拟环境中手动更新 pip 但我希望自动获得正确的版本 没有激活 venv gt pip V pip 7 1 2 from usr lib pyt
  • 查找所有应用程序文件夹并在 Inno Setup 中安装文件

    这是一个类似的问题找到应用程序的路径 并将文件复制到 Inno Setup 中的该目录 https stackoverflow com questions 46282559 我想将文件安装到 Inno Setup 中用户的 MATLAB 文
  • 如何解读uops.info?

    我查了一下说明在 uops info 上尝试找出 1 延迟是多少 以及 2 我可以执行多少个并发负载 我在解释结果时遇到困难 下面的屏幕截图 上面也有链接 What do the different variants of the inst
  • 一旦使用pthread满足条件,for循环就不会终止

    当我发现 for 循环没有终止时 我正在编写一段多线程代码 起始代码大致是这样的 for int i V 1 tid i gt 0 i NTHREADS stuff V 和 NTHREADS 是常量 tid 是使用传递的线程 IDpthre
  • Jupyter:在不同的单元格中重新绘制

    我想做这样的事情 import matplotlib pyplot as plt matplotlib inline fig1 plt figure 1 plt plot 1 2 3 5 2 4 plt show 在一个单元格中 然后在另一