【问题标题】:How to MatPlotLib plot and then add different axes?如何 MatPlotLib 绘图然后添加不同的轴?
【发布时间】:2022-08-17 00:16:26
【问题描述】:

我想绘制从 (0, 0) 到 (10, 10) 的 PDE 解。解决方案以 20 x 20 矩阵形式给出。

这是我的代码:

plt.figure()
plt.title(f\"Temperature at t = 100\")
plt.xlabel(\"x\")
plt.ylabel(\"y\")

plt.pcolormesh(U[-1], cmap=plt.cm.jet)
plt.colorbar()

所以我想要相同的图,但轴应该是从 0 到 10。我可以添加从 0 到 10 的第二个轴,然后隐藏当前轴吗?没有plt.subplots() 是否有可能实现这一点,因为我想为这个数字设置动画(animation.FuncAnimation(plt.figure(), animate, frames=range(0, max_iter)),其中 animate 是包含上述代码的函数)?

  • @BigBen 因为我正在尝试为这个数字设置动画:animation.FuncAnimation(plt.figure(), animate, frames=range(0, max_iter)),其中 animate 是一个包含我问题中的代码的函数。
  • 您是否需要为此使用pcolormesh?使用 imshow 我可以完全按照您的要求进行操作。

标签: python matplotlib


【解决方案1】:

解决方案U 包含颜色值和数组形状信息,但没有像您指出的那样明确定义有界的 x/y 值。我们可以使用imshow 中的extent=[<xmin>,<xmax>,<ymin>,<ymax>] 选项明确定义这些,如下所示(使用随机数据集):

import numpy as np
import matplotlib.pyplot as plt

U = np.random.rand(20,20)
print(U.shape) # Displays (20,20)

plt.figure()
plt.title(f"Temperature at t = 100")
plt.xlabel("x")
plt.ylabel("y")
plt.imshow(U, origin='lower', aspect='auto', extent = [0,10,0,10], cmap=plt.cm.jet)
plt.colorbar()
plt.show()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-28
    • 2013-04-01
    • 2020-07-15
    • 2016-11-29
    相关资源
    最近更新 更多