综观matplotlib文档,似乎标准的方式来添加AxesSubplot
一个Figure
是使用Figure.add_subplot
:
from matplotlib import pyplot
fig = pyplot.figure()
ax = fig.add_subplot(1,1,1)
ax.hist( some params .... )
我希望能够AxesSubPlot
独立于图形创建类似对象,因此可以在不同图形中使用它们。就像是
fig = pyplot.figure()
histoA = some_axes_subplot_maker.hist( some params ..... )
histoA = some_axes_subplot_maker.hist( some other params ..... )
# make one figure with both plots
fig.add_subaxes(histo1, 211)
fig.add_subaxes(histo1, 212)
fig2 = pyplot.figure()
# make a figure with the first plot only
fig2.add_subaxes(histo1, 111)
这有可能matplotlib
吗?如果可以,我该怎么做?
更新:我没有设法使轴和图形的创建脱钩,但是以下答案中的示例可以轻松地在新实例或olf Figure
实例中重用先前创建的轴。这可以用一个简单的函数说明:
def plot_axes(ax, fig=None, geometry=(1,1,1)):
if fig is None:
fig = plt.figure()
if ax.get_geometry() != geometry :
ax.change_geometry(*geometry)
ax = fig.axes.append(ax)
return fig
通常,你只需将轴实例传递给函数。
例如:
import matplotlib.pyplot as plt
import numpy as np
def main():
x = np.linspace(0, 6 * np.pi, 100)
fig1, (ax1, ax2) = plt.subplots(nrows=2)
plot(x, np.sin(x), ax1)
plot(x, np.random.random(100), ax2)
fig2 = plt.figure()
plot(x, np.cos(x))
plt.show()
def plot(x, y, ax=None):
if ax is None:
ax = plt.gca()
line, = ax.plot(x, y, 'go')
ax.set_ylabel('Yabba dabba do!')
return line
if __name__ == '__main__':
main()
要回答你的问题,你始终可以执行以下操作:
def subplot(data, fig=None, index=111):
if fig is None:
fig = plt.figure()
ax = fig.add_subplot(index)
ax.plot(data)
另外,你可以简单地将轴实例添加到另一个图形中:
import matplotlib.pyplot as plt
fig1, ax = plt.subplots()
ax.plot(range(10))
fig2 = plt.figure()
fig2.axes.append(ax)
plt.show()
调整其大小以匹配其他子图“形状”也是可能的,但是它将很快变得麻烦多于其应有的价值。以我的经验,对于复杂的情况,仅绕过图形或轴实例(或实例列表)的方法要简单得多。
通过前面的学习,我们知道 模块能够快速地生成图像,但如果使用面向对象的编程思想,我们就可以更好地控制和自定义图像。 在 Matplotlib 中,面向对象编程的核心思想是创建图形对象(figure object)。通过图形对象来调用其它的方法和属性,这样有助于我们更好地处理多个画布。在这个过程中,pyplot 负责生成图形对象,并通过该对象来添加一个或多个 axes 对象(即绘图区域)。 Matp
问题内容: 我试图将对象(JavaBean)添加到列表中。 这只会创建一个(类型)对象,因此它会向同一对象添加9次相同数据。 这将创建多个对象,并使用diff值添加9个diff对象。 如果(for循环)每次创建一个请求时都创建数百个对象而不是9个,该怎么办?那么它在内存中的转储对吗? 如何避免这种情况? 提前致谢。 问题答案: 当你这样做 该行将 对象添加到列表中,无论其状态是否更改或它是同一对象
我正在尝试在程序运行期间将 JButton 添加到坐在 JFrame 中的 JPanel 中。该按钮实际上可以正常工作(可单击),但不会显示。 我已经使用setLayout(null)将框架和面板的布局都设置为null 这里可能发生了什么? 编辑:我只是尝试在面板的构造函数中简单地向jPanel添加一个jtab,但即使这样也不行…
问题内容: 我正在尝试将matplotlib对象加载到reportlab。这是我的代码: 我的目标是将绘图图像插入报告中。这工作正常,但我不想写入临时文件。我之所以尝试安装PIL,是因为我已经读过一些使用PIL图像库的人,但是一旦安装PIL,由于Pillow版本不兼容,我的另一部分代码就会中断。 问题答案: 这个问题的第一个答案中讨论的pdfrw示例有点笨拙的唯一原因是因为pdfrw文档很烂。由于
我尝试使用和将添加到中,但无法将添加到中。我正在使用NetBeans和后端MySQL。请帮帮我. 编辑:谢谢,但我不知道如何分组。你能帮帮我吗?我有4列。第一列单元格包含项目名称,第二列单元格包含数量,第三列和第四列单元格连接JRadio按钮。然后我想在每一行中分组包含JRadio按钮的第三列和第四列单元格 编辑:如果我试图通过使用这个在jTable的自定义代码中添加radiobutton, ,那
我可以访问figure实例。我知道在这个图中有一个图例,我可以通过。现在我想更改图例的属性。其中一些我可以通过设置器访问,比如。 创建图例时,它接受多个关键字参数: 类matplotlib。传奇传奇(父项、句柄、标签、loc=None、numpoints=None、markerscale=None、scatterpoints=None、scatteryoffsets=None、prop=None、