如下所示:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
|
import numpy as np import matplotlib.pyplot as plt import matplotlib.patches as mpatches from scipy import stats fig = plt.figure() ax = fig.add_subplot( 111 , xlim = ( 0 , 10 ), ylim = ( - 4 , 4 )) sx = 0 ;sy = 0 ;r = 1.5 ; circle = mpatches.Circle((sx,sy),r,ec = 'b' ,fc = 'b' ,alpha = 0.6 ) ax.add_patch(circle) n = 5 alpha = np.linspace( - np.pi / 2 ,np.pi / 2 , 100 ) for i in range ( 1 ,n + 1 ): a = (i + 1 ) * 2 b = (i + 1 ) plt.plot(a * np.cos(alpha),b * np.sin(alpha)) if i < = 3 : ax.text(a + 1 , 0 , 'layer.%d' % (i - 1 ),ha = 'center' ,va = 'center' ) rate = 3 Jnum = 100 for i in range (Jnum): data = stats.poisson.rvs(mu = rate, loc = 0 , size = 1 ) while data = = 0 : data = stats.poisson.rvs(mu = rate, loc = 0 , size = 1 ) data = data[ 0 ] r = np.random.random() beta = (np.random.random() - 0.5 ) * np.pi print beta data + = r a = (data + 1 ) * 2 * np.cos(beta) b = (data + 1 ) * np.sin(beta) ax.scatter(a,b, c = 'y' ,edgecolors = 'y' ) xx = [ 3.5 , 6.8 , 6.8 ] yy = [ - 1.8 , 0.9 , 3.1 ] pp = [ 1.00 , 0.85 , 0.75 ] rota = [ - 45 , 0 , 0 ] for i in range ( 3 ): plt.plot(( 1.5 ,xx[i]) , ( 0 ,yy[i]) , 'r' ) ax.scatter(xx[i],yy[i], c = 'y' ,edgecolors = 'b' ) ax.text(xx[i] , yy[i] , 'probability %lf' % pp[i] , ha = 'center' ) tx = np.linspace( 0 , 10 , 10 ) ty = np.linspace( - 4 , - 4 , 10 ) ax.set_xticks(tx) ax.set_xticklabels(('')) ax.set_yticks(ty) ax.set_yticklabels(('')) #plt.axis('off') plt.show() |
以上这篇使用python 的matplotlib 画轨道实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持服务器之家。
原文链接:https://blog.csdn.net/cq_pf/article/details/50629873