使用python 的matplotlib 画轨道实例

yipeiwu_com7年前Python基础

如下所示:

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 画轨道实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持【听图阁-专注于Python设计】。

相关文章

python滑块验证码的破解实现

python滑块验证码的破解实现

破解滑块验证码的思路主要有2种: 获得一张完整的背景图和一张有缺口的图片,两张图片进行像素上的一一对比,找出不一样的坐标。 获得一张有缺口的图片和需要验证的小图,两张图片进行二...

Python中运行并行任务技巧

Python中运行并行任务技巧

示例 标准线程多进程,生产者/消费者示例: Worker越多,问题越大 复制代码 代码如下: # -*- coding: utf8 -*- import os import time i...

Python实现的生成格雷码功能示例

Python实现的生成格雷码功能示例

本文实例讲述了Python实现的生成格雷码功能。分享给大家供大家参考,具体如下: 问题 在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同, 则称这种编码为格雷码(Gray Co...

通过Py2exe将自己的python程序打包成.exe/.app的方法

通过Py2exe将自己的python程序打包成.exe/.app的方法

Windows 10 x64 macOS Sierra 10.12.4 Python 2.7 准备好装哔~了么,来吧,做个真正意义上的绿色小软件 Win下发布应用 起因 今天实验室同学看...

python二进制读写及特殊码同步实现详解

python对二进制文件的操作需要使用bytes类,直接写入整数是不行的,如果试图使用f.write(123)向文件中以二进制写入123,结果提示参数不是bytes类型。 impor...