2015-09-14 39 views
1

我很难让我的一些数字在我的论文中适当地对齐。指定matplotlib的确切大小figure

这是问题所在。我有两个数字,我想使用相同的X轴。我分别绘制两个数字,并将它们作为Latex中的两个子图。问题在于:第二个图的yticklabels需要更多空间,这使得它看起来比第一个图小。

enter image description here

我指定的figsize一样使用下面的代码

fig, ax = plt.subplots(figsize=(6,4)) 

但很明显,当其他像标题,标签,刻度标签需要更多的空间,“主要情节”似乎更小,使两个子图错位。有什么方法可以指定忽略其他标签,标题等的“主要情节”的大小?

P.S .:我没有使用matplotlib的subplots函数,因为我注意到pandas或matplotlib中的一个错误:无论何时我使用插入轴,xlabel和xticklabels都不会显示。所以我必须分别绘制两个数字来解决这个问题,并将它们作为胶乳中的两个子图。

回答

0

如果您的fig.subplots_adjustleft值设置为常数两个图,左边缘应该是在同一个地方,例如:

fig.subplots_adjust(left = 0.12) # you might need to adjust 0.12 to your needs 

假如把它放在你的脚本为您的数字,这应该很好地对齐它们。

+0

嗯,我试过了,但是这并没有解决问题。我没有使用plt.subplots来绘制这些子图。我必须首先生成这些数字并使用Latex对齐它们。 – user3821012

+0

你说在你用'fig,ax = plt.subplots(figsize =(6,4))'来指定数字大小的问题... – tom

+0

对不起,我不清楚。我确实使用了plt.subplots()来指定图的大小,但那只是一个子图。我为每个子图使用一个plt.subplots(),并尝试在Latex中合并它们。如图所示,第二个子图(轴内部分)看起来比第一个小。使用fig.subplots_adjust(left = 0.12)仍然会得到相同的结果。 – user3821012

1

当我面对这种情况,我只是硬编码在图中轴线的位置,那么事情会排队......

import matplotlib.pyplot as plt 

ax = plt.axes([0.15, 0.65, 0.8, 0.3]) 
ax.plot(range(100), range(100)) 

ax2 = plt.axes([0.15, 0.15, 0.8, 0.3]) 
ax2.plot(range(100), range(10000, 110000, 1000)) 

enter image description here