注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

随机过程

http://superware.blog.163.com

 
 
 

日志

 
 

绘图库 matplotlib 的使用  

2014-05-01 06:34:13|  分类: 默认分类 |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

这里是中文版,这里是英文版


        利用 matplotlib 绘制的线图质量是很高的,比 gnuplot 质量要高,甚至可以达到印刷质量。利用matplotlib绘图基本框架如下:


绘图库 matplotlib 的使用 - superware - 随机过程
 
 

#!/usr/bin/python


figure (figsize=(10,6), dpi=100) # 确定画布大小和分辨率


# 第一个图像 **************************************************************

subplot (2,2,1) # 指定第几个图像区域


ax = gca () # 设置坐标轴


X = np.linespace (-np.pi, np.pi, 200, endpoint=True) # 获取数据

C, S = np.cos(X), np.sin(X)


plot (X, C, color="blue", linewidth=2.5, linestyle="-", label="cos") # 画图


legend (loc="upper left") # 设置 legend


xlim(X.min()*1.2, X.max()*1.2)

ylim(C.min()*1.2, C.max()*1.2)


xticks ([-np.pi, np.pi],

[r'$-\pi$', r'$\pi$'])

yticks ([-1, 0, 1],

[r'$-1$', r'$0$', r'$1$'])

# 绘图细节设置


# 图形上的注释


# 图像输出(保存图像)


# 第二个图像 *****************************************************************

subplot (2, 2, 2)


# 第三个图像 *****************************************************************

subplot (2, 2, 3)


# 第四个图像 *****************************************************************

subplot (2, 2, 4)



下面介绍一个用matplotlib绘制函数图像的例子,在这个例子中只画了一个绘图区域,也就是 subplot(1,1,1):


绘图库 matplotlib 的使用 - superware - 随机过程

#!/usr/bin/python


# Import everything from matplotlib (numpy is accessible via 'np' alias)
from pylab import *

# Create a new figure of size 8x6 points, using 80 dots per inch
figure(figsize=(10,6), dpi=100)

# Create a new subplot from a grid of 1x1
subplot(1,1,1)

# setting axises

ax = gca ()
ax.spines['right'].set_color('none')
ax.spines['top'].set_color('none')
ax.xaxis.set_ticks_position('bottom')
ax.spines['bottom'].set_position(('data', 0))
ax.yaxis.set_ticks_position('left')
ax.spines['left'].set_position(('data', 0))


# setting data
X = np.linspace(-np.pi, np.pi, 200,endpoint=True)
C,S = np.cos(X), np.sin(X)

# Plot cosine using blue color with a continuous line of width 1 (pixels)

plot(X, C, color="blue", linewidth=2.5, linestyle="-", label='cos')

# Plot sine using green color with a continuous line of width 1 (pixels)
plot(X, S, color="red", linewidth=2.5, linestyle="-", label='sin')

# setting legend
legend (loc='upper left')

# Set x, y limits
xlim(X.min()*1.2, X.max()*1.2)
ylim(C.min()*1.2, C.max()*1.2)

# Set x, y ticks
# xticks(np.linspace(-4, 4, 5, endpoint=True))

xticks( [-np.pi, -np.pi/2, np.pi/2, np.pi],
[r'$-\pi$', r'$-\pi/2$', r'$\pi/2$', r'$\pi$'])
yticks( [-1, 0, 1],
[r'$-1$', r'$0$', r'$1$'])


# details
for label in ax.get_xticklabels() + ax.get_yticklabels():
label.set_fontsize(16)
label.set_bbox(dict(facecolor='white', edgecolor='None', alpha=0.8))

# Save figure using 72 dots per inch
savefig("exercice_2.eps", dpi=100)

# comment some points
t = 2*np.pi/3
plot([t,t],[0,np.cos(t)], color ='blue', linewidth=2.5, linestyle="--")
scatter([t,],[np.cos(t),], 50, color ='blue')

annotate(r'$\sin(\frac{2\pi}{3})=\frac{\sqrt{3}}{2}$',
xy=(t, np.sin(t)),
xycoords='data',
xytext=(+10, +30),
textcoords='offset points',
fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

plot([t,t],[0,np.sin(t)], color ='red', linewidth=2.5, linestyle="--")
scatter([t,],[np.sin(t),], 50, color ='red')

annotate(r'$\cos(\frac{2\pi}{3})=-\frac{1}{2}$',
xy=(t, np.cos(t)),
xycoords='data',
xytext=(-90, -50),
textcoords='offset points',
fontsize=16,
arrowprops=dict(arrowstyle="->", connectionstyle="arc3,rad=.2"))

# Show result on screen

show()


 
  评论这张
 
阅读(86)| 评论(0)
推荐

历史上的今天

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017