2

散布図で平均からの値の距離の散布図をプロットしたいと思います。

これが私のコードです:

import numpy as np
import matplotlib.pyplot as plt

x=[5,6,2,6,9]
y=[2,4,5,1,10]
x_mean=np.mean(x)
y_mean=np.mean(y)
x_dist_mean=x-x_mean
y_dist_mean=y-y_mean

my labels=['horse', 'cat' , 'dog', 'fish', 'ape']
plt.scatter(x_dist_mean, y_dist_mean ,alpha=0.5 )
plt.show()

ただし、平均からの距離のサイズに比例する散布図のドットを作成したいので、距離が大きいと円が大きくなり、距離が小さいと円が小さくなります。さらに、my_labels のラベル名で円に色を付けたいと思います。

誰かがこれで私を助けてくれますか?

4

1 に答える 1

3

ドットのサイズのパラメーターを渡して、s後でドットに注釈を付けるだけです。注釈機能をもっとたくさん使うことができます。(ドットの中心から開始するようにラベルを配置しましたが、別の外観にすることもできます...)

import numpy as np
import matplotlib.pyplot as plt

x=[5,6,2,6,9]
y=[2,4,5,1,10]
x_mean = np.mean(x)
y_mean = np.mean(y)
x_dist_mean = x - x_mean
y_dist_mean = y - y_mean

size = np.abs(x_dist_mean * y_dist_mean) * 100
labels=['horse', 'cat' , 'dog', 'fish', 'ape']

plt.scatter(x_dist_mean, y_dist_mean, s=size, alpha=0.5, label=labels)
for label, x, y in zip(labels, x_dist_mean, y_dist_mean):
    plt.annotate(label, xy = (x, y))
于 2013-09-16T09:57:53.063 に答える