【发布时间】:2020-08-21 23:25:59
【问题描述】:
在大量打斗和观看 youtube 教程之后,我已经能够实现创建一个具有唯一名称和 4 个子图的图形窗口的目标。 p>
我使用的方法是add_subplot,因为我比解包元组方法更了解代码,即图,...
我要做的最后一点是分享我的 x 轴,经过大量尝试,即尝试插入代码 sharex="Cols" 或 sharex = True 我没有成功。
我的完整代码如下:-
import pandas
import numpy
from matplotlib import pyplot
x = numpy.linspace(0, 2*numpy.pi, 400)
y = numpy.sin(x**2)
yy = numpy.sin(x**2+3)
My_Figure_Window = pyplot.figure("Title Of Figure Window")
pyplot.style.use("ggplot")
My_Figure_Window.suptitle("Main Title")
Sub_Plot_Rows = 4
Sub_Plot_Cols = 1
Wall = My_Figure_Window.add_subplot(Sub_Plot_Rows, Sub_Plot_Cols, 1)
Wall.plot(x, y, color="r", label='Line 1')
Wall.plot(x, yy, color="b", label='Line 2')
pyplot.ylabel("Ylabel")
Wall.get_legend_handles_labels()
pyplot.legend()
pyplot.show()
Sidewalk = My_Figure_Window.add_subplot(Sub_Plot_Rows, Sub_Plot_Cols, 2)
Sidewalk.plot(x, y, label='Line 3')
Sidewalk.plot(x, yy, label='Line 4')
pyplot.ylabel("Ylabel")
Sidewalk.get_legend_handles_labels()
pyplot.legend()
pyplot.show()
HeadWall = My_Figure_Window.add_subplot(Sub_Plot_Rows, Sub_Plot_Cols, 3)
HeadWall.plot(x, y, label='Line 5')
HeadWall.plot(x, yy, label='Line 6')
pyplot.ylabel("Ylabel")
HeadWall.get_legend_handles_labels()
pyplot.legend()
pyplot.show()
SideTank = My_Figure_Window.add_subplot(Sub_Plot_Rows, Sub_Plot_Cols, 4)
SideTank.plot(x, y, label='Line 7')
SideTank.plot(x, yy, label='Line 8')
pyplot.ylabel("Ylabel")
SideTank.get_legend_handles_labels()
pyplot.legend()
pyplot.show()
谁能指出我在哪里/如何为所有这些子图共享我的 X 轴的正确方向?
顺便说一句,我意识到代码pyplot.show() 没有任何影响,但每个人都包含它吗?
【问题讨论】:
-
作为旁注,
SideTank.get_legend_handles_labels()自己什么都不做:它返回可以传递给另一个对 legend 的调用的对象。通常,只需调用 axes.legend() 就足够了,我相信它会调用 get_legend_handles_labels():matplotlib.org/3.1.1/api/_as_gen/… -
您只需要在代码末尾调用一次
pyplot.show()。 Here 是一个工作示例。
标签: python matplotlib sharing