2017-11-01 1 views
0

指定された中心位置と半径を持つ円をプロットし、[0-500]間に100個のランダムな点をプロットしたいと思います。 この問題を解決するために、私はPlot circle that contains 80% (x, y) pointsを使用し、私の要件に基づいてカスタマイズしましたが、動作しません。pythonでいくつかの色付き点を持つ円をプロットする

import numpy as np 
import matplotlib.pyplot as plt 
n = 100 
low = 0 
high = 500 
x = np.random.random_integers(low, high, n) 
y = np.random.random_integers(low, high, n) 
x0 = y0 = 250 
r = 200 
#t = 80 # percent 
#r0 = np.percentile(r, t) 
plt.plot(x, y, '.') 
circle = plt.Circle((x0, y0), r, color='black', fill=False, linestyle='--') 
plt.plot(x0, y0, color='black', marker='^') 
plt.gca().add_artist(circle) 
plt.axis([0, 500, 0, 500]) 
plt.show() 
+0

何が問題なのですか? – eyllanesc

+0

このコードでは、ポイントの80%が円に含まれていません。また、私は2つの色でポイントをプロットしたい。 – user3356423

+1

円の内側にn点を配置するのは簡単ですが、円の外側は無理ですが、すべて無限になる可能性があります。これらの点は200の半径よりも大きい距離から300の別の半径までの距離にある可能性がある。 – eyllanesc

答えて

0

私の質問の答えが見つかりました。 円の方程式を使って点が円内にあるかどうかを調べることができます。

(x-x0)**2+(y-y0)**2 < r**2 
center:(x0, y0) 
radius:r 
関連する問題