【发布时间】:2019-05-31 03:08:56
【问题描述】:
使用 matplotlib,我想绘制两个具有相同 x 轴比例的图形,但我想显示不同大小的部分。我怎样才能做到这一点?
到目前为止,我可以使用 GridSpec 绘制不同大小的子图或共享 x 轴的相同大小的子图。当我同时尝试两者时,较小的子图具有相同的轴但比例较小,而我想要相同的比例和不同的轴,因此共享轴可能是一个错误的想法。
import numpy as np
import matplotlib.pyplot as plt
from matplotlib.gridspec import GridSpec
x=np.linspace(0,10,100)
y=np.sin(x)
x2=np.linspace(0,5,60)
y2=np.cos(x2)
fig=plt.figure()
gs=GridSpec(2,3)
ax1 = fig.add_subplot(gs[0, :])
ax1.plot(x,y)
ax2 = fig.add_subplot(gs[1,:-1])
#using sharex=ax1 here decreases the scaling of ax2 too much
ax2.plot(x2,y2)
plt.show()
我希望 x.axes 具有相同的缩放比例,即相同的 x 值总是彼此完全重叠,this 应该会给你一个想法。较小的情节的框架可以扩大或适合情节,没关系。 As it is now,比例不匹配。
提前致谢。
【问题讨论】:
-
带有绘图问题,如果您可以提供您想要的可视化表示,这将非常有帮助。我怀疑你会想使用
get_函数从 ax1 中提取轴信息,然后在纠正大小差异后根据需要使用ax2.set_ -
我添加了一个图表,说明如果看起来是什么样子,希望您能明白我的意思。
标签: python matplotlib scaling subplot