我用一个技巧来绘制一个高度与主轴相匹配的颜色条.代码就像
import matplotlib.pyplot as plt
from mpl_toolkits.axes_grid1 import make_axes_locatable
import numpy as np
ax = plt.subplot(111)
im = ax.imshow(np.arange(100).reshape((10,10)))
# create an axes on the right side of ax. The width of cax will be 5%
# of ax and the padding between cax and ax will be fixed at 0.05 inch.
divider = make_axes_locatable(ax)
cax = divider.append_axes("right", size="5%", pad=0.05)
plt.colorbar(im, cax=cax)
Run Code Online (Sandbox Code Playgroud)
这个技巧很好用.但是,由于附加了新轴,因此图形的当前实例变为cax - 附加轴.结果,如果执行像这样的操作
plt.text(0,0,'whatever')
Run Code Online (Sandbox Code Playgroud)
文本将在cax而不是ax上绘制 - 我所属的轴.
同时,gcf().轴显示两个轴.
我的问题是:如何使当前轴实例(由gca()返回)成为im所属的原始轴.
如果为变量分配了任何新内容,为"旧内容"分配的内存是否会"正确"免费?例如,在下面的脚本中,在为"a"分配一些新东西之后,变量"a"作为零数组的内存是否会被释放
import numpy
a = numpy.zeros(1000)
a = a+1
Run Code Online (Sandbox Code Playgroud)
我想成像Python足够聪明,可以干净利落地使用所谓的"垃圾收集",我从来没有真正能够通读.任何确认?我很感激.
该Lua的PIL和Luajit FFI教程给了两种用法__index在元表.
一个用于索引像obj [123],例如,
__index = function (self, k) return self._data+(k-self._lower)
另一种用法是定义命名方法,如教程中所给出的,
__index = { area = function(a) return a.x*a.x + a.y*a.y end? },
然后我们可以进行函数调用obj:area().
我可以同时做两件事,例如直接索引和命名方法吗?
例如,设置xlim后,ylim宽于屏幕上显示的数据点范围。当然,我可以手动选择一个范围并进行设置,但是我希望它是自动完成的。
或者,至少,我们如何确定屏幕上显示的数据点的y范围?
设置xlim后立即绘制:

手动设置ylim后绘制:
