matplotlib库应用举例
来源:互联网 发布:淘宝网 阿里巴巴 编辑:程序博客网 时间:2024/06/05 10:57
最近做物理实验需要画图,顺手学习了一下matplotlib库的简单使用,做下记录.
(其中的数据是我测得,误差较大,不要参考!不要参考!)
运行环境:PyCharm+python3.5+numpy+matplotlib
第一个实验是用霍尔效应测量磁场的实验,需要在一张纸上画三个折线图,不需要进行拟合.
import numpy as npimport matplotlib.pyplot as pltplt.figure(figsize=(8.3,11.7)) #初始化图纸比例plt.subplot(221) #指定图纸分栏中此图位置x1 = [0.50, 1.00, 1.50, 2.00, 2.50, 3.00] #初始数据y1 = [1.04, 2.07, 3.08, 4.12, 5.14, 6.17]plt.plot(x1,y1,'ro',color="red") #指定线或者是点的格式plt.plot(x1,y1,'-',color="black",linewidth=1)plt.xlabel("Is(mA)") #指定下标plt.ylabel("Uh(mv)")plt.title("Uh--Is (Im=500mA)") #指定图标标题plt.xlim(0.00,3.50)plt.ylim(0.00,7.00)plt.subplot(222)x2 = [1.00, 1.50, 2.00, 2.50, 3.00]y2 = [1.24, 1.86, 2.48, 3.10, 3.71]plt.plot(x2,y2,'ro',color="red")plt.plot(x2,y2,'-',color="black",linewidth=1)plt.xlabel("Im(mA)")plt.ylabel("Uh(mv)")plt.title("Uh--Im (Is=3mA)")plt.xlim(0.00,3.50)plt.ylim(0.00,4.00)plt.subplot(212)x3 = [0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55]y3 = [8.57, 9.89, 10.8, 11.3, 11.4, 11.4, 10.6, 9.56, 8.17, 6.61, 5.20, 3.22]plt.plot(x3,y3,'ro',color="red")plt.plot(x3,y3,'-',color="black",linewidth=1)plt.xlabel("X(mm)")plt.ylabel("B(T*e-3)")plt.title(" B--X (Is=300mA Im=500mA)")plt.xlim(-1.00,60)plt.ylim(3.00,12.00)plt.show()
结果如图:
第二个实验是单缝衍射光强分布的测定,一个图,需要将点光滑的连起来:
import numpy as npimport matplotlib.pyplot as pltfrom scipy.interpolate import splineplt.figure(figsize=(10,7))x = np.arange(-16,15.5,0.5)y = np.array( [0.111 ,0.096, 0.101, 0.125, 0.166, 0.201, 0.246, 0.261, 0.266, 0.236,0.201, 0.17, 0.175, 0.19, 0.276, 0.409, 0.572, 0.694, 0.787, 0.777,0.72, 0.679, 0.788, 1.245, 3.535, 5.755, 6.945, 8.075, 10.635, 13.545,16.025, 17.905, 18.705, 18.505, 17.155, 15.275, 12.625, 9.285, 7.075, 4.735,2.935, 1.665, 1.025, 0.756, 0.749, 0.83, 0.832, 0.696, 0.507, 0.508,0.428, 0.31, 0.252, 0.244, 0.261, 0.279, 0.28, 0.252, 0.191, 0.163,0.129, 0.113, 0.114]);xnew = np.linspace(x.min(),x.max(),1000)power_smooth = spline(x,y,xnew) #将两点平滑的连接plot1 = plt.plot(x, y, '*',label='original values')plot2 = plt.plot(xnew, power_smooth, 'r',label='curve_fit values')plt.xlabel('x/mm')plt.ylabel('y/1e-7A')plt.legend(loc=1) #指定legend的位置plt.hlines(0, -17, 16, linestyles = "dashed") #画一条表示y=0的虚线plt.title('Physical work')plt.savefig('1.png')plt.show()
结果如图:
第三个实验磁场的测量,需要四个图,而且要在图中显示中文:
import numpy as npimport matplotlib.pyplot as pltfrom scipy.interpolate import splinefrom matplotlib.font_manager import *myfont = FontProperties(fname='/usr/share/fonts/truetype/wqy/wqy-microhei.ttc') #指定字体配置(后面为你的系统中字体的位置)plt.figure(figsize=(12,12))plt.subplot(221)x1 = np.arange(-50,60,10)y1 = np.array([0.107, 0.118, 0.128, 0.136, 0.140, 0.142, 0.137, 0.131, 0.123, 0.112, 0.101])y2 = np.array([0.106, 0.117, 0.128, 0.136, 0.142, 0.144, 0.142, 0.136, 0.128, 0.117, 0.106])xnew = np.linspace(x1.min(),x1.max(),100)power_smooth1 = spline(x1,y1,xnew)power_smooth2 = spline(x1,y2,xnew)plt.plot11 = plt.plot(x1, y1, 'ro')plt.plot12 = plt.plot(xnew, power_smooth1)plt.plot21 = plt.plot(x1, y2, 'ro')plt.plot22 = plt.plot(xnew, power_smooth2)plt.xlabel('x/mm')plt.ylabel('y/mT')plt.title('单个线圈轴线',fontproperties=myfont) #指定字体plt.xlim(-60,60)plt.ylim(0.000,0.200)plt.subplot(222)x1 = np.arange(-50,60,10)y1 = np.array([0.192, 0.197, 0.200, 0.201, 0.201, 0.201, 0.201, 0.201, 0.200, 0.197,0.192])plt.plot(x1,y1,'-')plt.plot(x1,y1,'ro')plt.xlabel('x/mm')plt.ylabel('y/mT')plt.title("双线圈轴线",fontproperties=myfont)plt.xlim(-60,60)plt.ylim(0.000,0.210)plt.subplot(223)x1 = np.arange(-30,40,10)y1 = np.array([0.201, 0.201, 0.201, 0.201, 0.201, 0.201, 0.200])plt.plot(x1,y1,'-')plt.plot(x1,y1,'ro')plt.xlabel('x/mm')plt.ylabel('y/mT')plt.title("双线圈径线",fontproperties=myfont)plt.xlim(-40,40)plt.ylim(0.000,0.210)plt.subplot(224)x1 = np.arange(20,140,10)y1 = np.array([0.194, 0.198, 0.202, 0.199, 0.200, 0.201, 0.201, 0.201, 0.199, 0.200, 0.201, 0.201])plt.plot(x1,y1,'-')plt.plot(x1,y1,'ro')plt.xlabel('x/Hz')plt.ylabel('y/mT')plt.title("坐标原点处",fontproperties=myfont)plt.xlim(0,140)plt.ylim(0.000,0.210)plt.show()
结果如图:
阅读全文
0 0
- matplotlib库应用举例
- Java线性代数库jblas的应用举例
- pb_ds库的讲解和应用举例
- 应用Matplotlib来作图
- matplotlib的简单应用
- python之matplotlib应用
- xpath应用举例
- jasperReport应用举例
- 变长参数应用举例
- PIX 防火墙应用举例
- 串操作应用举例
- PIX 防火墙应用举例
- DataFormatString应用举例
- Mysqlbinlog 命令应用举例
- 字符串倒置应用举例
- Spring Controller应用举例
- libSVM应用举例
- CRichText 应用举例
- mysite下的url 映射到news下的视图
- Sql语句中IN等方面的用法
- Spring新手学习笔记(二)后处理器与AOP 1048693.shtml
- Linux图形化操作工具
- DAO层、Service层、Controller层和view层
- matplotlib库应用举例
- 推荐一款具有恶性负载识别功能的YXD121校园电表
- 组合数学 抽屉原理 Poj 2356
- 查看图片
- 彻底解决smartupload中文乱码问题(2017)
- 远程Linux上部署Mysql5.7
- iscsi服务器安装和配置
- ZooKeeper分布式锁与代码实现
- Unity Cache Server 服务安装