【问题标题】:shared axes in scatter plots in matplotlibmatplotlib 散点图中的共享轴
【发布时间】:2023-03-14 01:47:01
【问题描述】:

我试图将两个散点图并排放置,共享一个 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

【问题讨论】:

  • 看起来这是 matplotlib 中的一个合法错误,但不值得处理。它似乎只影响其中有一个点的散点图,所以我在尝试调试最小用例时偶然发现了它。只要我在散点图中添加多个点,问题就会消失。

标签: python matplotlib scatter-plot


【解决方案1】:

我没有回答为什么的问题,但这里是如何摆脱它:在你的代码 sn-p 中,给 scatter 三个点来绘制

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

为我工作(Lucid 上的 matplotlib 1.1.0)。

我只能猜测 scatter 试图比 plot 在轴限制方面更聪明一点, 但不管它在做什么,它只会因为一点而发疯。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-09-18
    • 1970-01-01
    • 2017-08-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多