Python 子批次/设置垂直空间的Matplotlib校准(Jupyter笔记本)
我有两块地积在一起。上部图形的图例由较大的数字组成,因此图形被推到右侧。我已经看到了锚定的概念,但我没有实现它。我的想法是对齐左y轴。此外,子地块之间的空间有点太宽,有没有办法控制这种行为 有人能帮我吗 非常感谢,请大家注意安全 我创建了一些测试数据: 守则:Python 子批次/设置垂直空间的Matplotlib校准(Jupyter笔记本),python,matplotlib,jupyter-notebook,Python,Matplotlib,Jupyter Notebook,我有两块地积在一起。上部图形的图例由较大的数字组成,因此图形被推到右侧。我已经看到了锚定的概念,但我没有实现它。我的想法是对齐左y轴。此外,子地块之间的空间有点太宽,有没有办法控制这种行为 有人能帮我吗 非常感谢,请大家注意安全 我创建了一些测试数据: 守则: fig, host = plt.subplots(figsize=(8,4)) plt.title('test') fig, hos = plt.subplots(figsize=(8,2)) par1 = host.twinx()
fig, host = plt.subplots(figsize=(8,4))
plt.title('test')
fig, hos = plt.subplots(figsize=(8,2))
par1 = host.twinx()
p1, = host.plot(df.ExpectedValueEUR, "b-", marker = 'o', label="ExpectedValueEUR")
p2, = par1.plot(df.Count, "r-", label="Count", ls='dotted')
p3, = hos.plot(df.Average, "g-", label="Average", ls='dashed')
host.set_ylim(1000000, 20000000)
par1.set_ylim(5, 100)
hos.set_ylim(0, 1200000)
hos.set_xlabel("Date")
host.set_ylabel("ExpectedValueEUR")
par1.set_ylabel("Count")
hos.set_ylabel("Average")
host.yaxis.label.set_color(p1.get_color())
par1.yaxis.label.set_color(p2.get_color())
hos.yaxis.label.set_color(p3.get_color())
tkw = dict(size=4, width=1.5)
host.tick_params(axis='y', colors=p1.get_color(), **tkw)
par1.tick_params(axis='y', colors=p2.get_color(), **tkw)
hos.tick_params(axis='y', colors=p3.get_color(), **tkw)
host.tick_params(axis='x', **tkw)
line1 = [p1, p2]
line2 = [p3]
host.legend(line1, [l.get_label() for l in line1])
hos.legend(line2, [l.get_label() for l in line2])
host.yaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
hos.yaxis.set_major_formatter(mpl.ticker.StrMethodFormatter('{x:,.0f}'))
plt.show()
图表如下所示:
我自己解决了。一个解决方案是在“一步走”中启动两个图。你能详细说明一下你的意思吗?