好吧,我想制作一个可以显示4种不同分布的动画,但是当我使用gridspec制作子图时,它不起作用,代码如下:
import matplotlib.animation as animation
import matplotlib.pyplot as plt
import numpy as np
%matplotlib notebook
x1 = np.random.normal(-2.5, 1, 10000)
x2 = np.random.gamma(2, 1.5, 10000)
x3 = np.random.exponential(2, 10000)+7
x4 = np.random.uniform(14,20, 10000)
x = [x1, x2, x3, x4]
bins1 = np.arange(-7.5, 2.5, 0.2)
bins2 = np.arange(0, 10, 0.2)
bins3 = np.arange(7, 17, 0.2)
bins4 = np.arange(12, 22, 0.2)
bins = [bins1, bins2, bins3, bins4]
axis1 = [-7.5, 2.5, 0, 0.6]
axis2 = [0, 10, 0, 0.6]
axis3 = [7, 17, 0, 0.6]
axis4 = [12, 22, 0, 0.6]
axis = [axis1, axis2, axis3, axis4]
import matplotlib.gridspec as gridspec
gspec = gridspec.GridSpec(4, 4)
plt.figure()
ax1 = plt.subplot(gspec[0:2, 0:2])
ax2 = plt.subplot(gspec[0:2, 2:])
ax3 = plt.subplot(gspec[2:, 2:])
ax4 = plt.subplot(gspec[2:, 0:2])
ax = [ax1, ax2, ax3, ax4]
for a in ax:
a.spines['right'].set_visible(False)
a.spines['top'].set_visible(False)
gspec.update(wspace = .6, hspace = .6)
def update(curr):
if curr == 500:
a.event_source.stop()
for i in range(len(ax)):
ax[i].cla()
ax[i].hist(x[i][:curr], normed = True, bins = bins[i])
ax[i].axis(axis[i])
ax[i].set_title('n={}'.format(curr))
ax[i].set_ylabel('Normed Frequency')
plt.tight_layout()
fig = plt.gcf()
a = animation.FuncAnimation(fig, update, interval = 10)
在这种情况下,动画不起作用,但有趣的是,如果我使用
fig, ((ax1,ax2),(ax3, ax4)) = plt.subplots(2, 2, sharey = True)
ax = [ax1, ax2, ax3, ax4]
使ax1,ax2,ax3,ax4保持不变,代码运行良好,因此使用gridspec时是否需要了解一些详细信息?
GridSpec参数wspace
和与hspace
不兼容plt.tight_layout
。您可以使用tight_layout
或指定间距。
如果要使用GridSpec,则有两个选择:
plt.tight_layout
gspec.update(wspace = .6, hspace = .6)
原因
fig, ((ax1,ax2),(ax3, ax4)) = plt.subplots(2, 2, sharey = True)
ax = [ax1, ax2, ax3, ax4]
因此,有效的方法是您不设置任何wspace或hspace。
问题内容: 我正在尝试使用该模块制作动画,但是我的代码仅产生一帧,然后停止。似乎没有意识到需要更新什么。您能帮我解决问题吗? 问题答案: 您需要保留对动画对象的引用,否则它会被垃圾收集并且计时器消失。 将硬引用动画附加到基础对象存在一个未解决的问题。 由于写的,你的代码以及只绘制一个点,这将是不可见的,我改变了它有点吸取 多达 当前索引
问题内容: 我想将组件与Android的新实现一起使用。但是,提供的方法仅支持旧的实现。有没有一种方法可以轻松地将a绑定到组件? 问题答案: 您必须使用它 来模拟和设置with 。否则,您将必须编写自己的适配器,以结合双方。 它的代码在Kotlin中看起来像这样
问题内容: 我想使用查询字符串成功登录后将用户重定向到另一个页面。如果我复制并粘贴到浏览器的地址栏中,则可以正常工作。但是如果我用 网址看起来像 如何将%3F解码为“?” ?谢谢 问题答案: 它应该是
所以我导入PromiseKit,然后尝试 显然,这是行不通的,我想知道,如果可能的话,我还缺少什么可以让Firebase的promise发挥作用。我试图实现的是用一个catch方法一次性删除四个Firebase引用。 使用nodeJs,我可以轻松使用: 有没有办法在Swift中实现这一点?
问题内容: 我正在使用spring数据,我的DAO看起来像 在上面的代码中,注释行显示了我的意图。Spring Data是否可以提供内置功能来使用这种方法通过ASC / DESC按某列查找所有记录顺序? 问题答案: 上面的代码应该可以工作。我正在使用类似的东西: 它返回最高级别的10行。 重要提示: 由于有人告诉我很容易错过此答案的关键点,因此需要澄清一下:
我在Ubuntu 14.04中安装了phpbrew以使用PHP5.4。它工作得很好,但当我尝试使用composer时除外,composer会忽略phpbrew并安装与PHP5.5相关的依赖项。 有没有办法强制composer与phpbrew config兼容?我试图在我的作曲家中添加:php:“5.4”。json,但是它说这个要求在我的php版本中是不可能的。