在matplotlib中的散点图中共享轴

时间:2012-03-21 23:33:07

标签: python matplotlib scatter-plot

我试图将两个散点图彼此相邻并使用共享的y轴,但轴似乎得到一个奇数。没有共享轴,两个图看起来很好。我还注意到使用“plot”而不是“scatter”时不会出现问题。图片包括在下面。这是我正在使用的代码。

#!/usr/bin/python

import matplotlib.pyplot as plt

fig = plt.figure(1)
for i in range(1,3):
    if i == 1:
        ax = fig.add_subplot(1,2,i)
    else:
        fig.add_subplot(1,2,i, sharey=ax)

    #plt.plot([5.0], [1],marker="*",color='tomato')
    plt.scatter([5.0], [1], s=20, color='tomato')

plt.show()

[我会包含图片,但网站不会让我作为新手。]当我运行上面的代码时,我看到的图表的y轴从0.0000到0.0008,单点绘制在0.0004。没有共享轴,y轴从0.94变为1.06,单点绘制在1.00,正如预期的那样。

谁能告诉我为什么?这是一个错误还是一个功能?

matplotlib:Ubuntu 10.04 LTS上的0.99.1.2-3ubuntu - Lucid Lynx

1 个答案:

答案 0 :(得分:0)

我没有回答问题的原因,但是这里是如何摆脱它:在你的代码片段中,给予scatter三个点来绘制

plt.scatter([1.0,2,3], [1.1,2.2,2.9], s=20, color='tomato')

适合我(matplotlib 1.1.0 on Lucid)。

我只能猜测scatter试图比plot更加聪明,因为轴限制, 但无论它在做什么,它都只是为了一点而疯狂。