3

matplotlib の散布図として、次の数値を対数スケールでプロットしようとしています。x 軸と y 軸の両方の量は非常に異なるスケールを持ち、変数の 1 つは巨大なダイナミック レンジ (およそ 0 から 1200 万) を持ち、もう 1 つはほぼ 0 から 2 の間です。どちらも対数スケールで。

2 つの変数の値のサブセットについて、次のことを試しました。

fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(1, 1, 1)
ax.set_yscale('log')
ax.set_xscale('log')
plt.scatter([1.341, 0.1034, 0.6076, 1.4278, 0.0374],
        [0.37, 0.12, 0.22, 0.4, 0.08])

x 軸は対数スケールで表示されますが、ポイントは表示されず、2 つのポイントのみが表示されます。これを修正する方法はありますか?また、この対数スケールを正方形の軸に表示して、2 つの変数間の相関関係を散布図から解釈できるようにするにはどうすればよいですか?

ありがとう。

4

2 に答える 2

3

なんでその2点しか取れないのかわからない この場合、制限を手動で調整して、すべてのポイントが収まるようにすることができます。私は走った:

import matplotlib.pyplot as plt

fig = plt.figure(figsize=(8, 8)) # You were missing the =
ax = fig.add_subplot(1, 1, 1)
ax.set_yscale('log')
ax.set_xscale('log')
plt.scatter([1.341, 0.1034, 0.6076, 1.4278, 0.0374],
        [0.37, 0.12, 0.22, 0.4, 0.08])
plt.xlim(0.01, 10) # Fix the x limits to fit all the points
plt.show()

「また、2 つの変数間の相関関係を散布図から解釈できるように、この対数スケールを正方形の軸に表示するにはどうすればよいですか?」意味。おそらく他の誰かが理解するか、またはあなたが明確にすることができますか?

于 2010-04-23T02:25:54.377 に答える
2

あなたもすることができます、

plt.loglog([1.341, 0.1034, 0.6076, 1.4278, 0.0374], 
                     [0.37, 0.12, 0.22, 0.4, 0.08], 'o')

これにより、適切にスケーリングされた軸を使用して必要なプロットが生成されますが、真の散布図のすべての柔軟性はありません。

于 2010-04-23T04:59:36.110 に答える