用matplotlib画简单折线图示例
例1
import numpy as np
import matplotlib.pyplot as plt
from scipy import stats
rx1 = np.array([54.52, 55.14, 55.80, 56.43, 57.08, 57.71, 58.35, 58.97, 59.61, 60.25]) #纵坐标
t1 = np.linspace(20.5, 47.5, 10) #横坐标
a = stats.linregress(t1, rx1) #求线性回归方程
k = a[0] #斜率
b = a[1] #截距
plt.rcParams['font.sans-serif'] = ['SimHei'] #使中文能正常显示
plt.rcParams['axes.unicode_minus'] = False #使符号能正常显示
plt.rcParams['font.size'] = 16 #改变字体大小
plt.figure(figsize=(12, 6)) #改变图片大小
plt.grid(True) #显示网格
plt.plot(t1, rx1, 'k-o') #画图:穿过点的折线
plt.title(u'铜电阻阻值与温度曲线图(惠斯通电桥)') #标题
plt.xlabel('t(℃)') #横坐标说明
plt.ylabel('$R_X$(Ω)') #纵坐标说明(一对$之间是Tex表达式)
for  i in zip(t1, rx1):
    plt.text(i[0], i[1], str(i[1]), ha='right', va='bottom') #给点加上数据
plt.show() #显示图片
例2
import numpy as np
from scipy import stats
from scipy import interpolate
import matplotlib.pyplot as plt
def xxdz():
    u1 = np.array([0.23, 0.5, 0.75, 1.01, 1.25, 1.51, 1.75])
    i1 = np.array([2.2, 4.6, 6.8, 9.7, 12.0, 14.7, 17.0])
    k1, b1, *_ = stats.linregress(u1, i1)
    x1 = np.linspace(0, max(u1), 1000)
    u2 = np.array([0.23, 0.5, 0.75, 1, 1.26, 1.51, 1.75])
    i2 = np.array([2.2, 4.8, 7.8, 10.0, 12.8, 15.5, 18.0])
    k2, b2, *_ = stats.linregress(u2, i2)
    x2 = np.linspace(0, max(u2), 1000)
    plt.scatter(u1, i1, c='k', marker='^', label='内接法') #画点
    plt.scatter(u2, i2, c='k', marker='o', label='外接法')
    plt.plot(x1, k1 * x1 + b1, 'k', label='内接法')
    plt.plot(x2, k2 * x2 + b2, 'k--', label = '外接法')
    plt.title('测量线性电阻的伏安特性')
    plt.xticks(np.linspace(0, 1.8, 10)) #设置坐标轴的刻度
    plt.yticks(np.linspace(0, 20, 11))
    plt.xlabel('U/V')
    plt.ylabel('I/mA')
    plt.legend()
def bdtejg():
    u1 = np.array([0.238, 0.426, 0.670, 0.740, 0.782, 0.810, 0.830, 0.852, 0.874, 0.885])
    i1 = np.array([0.0, 0.0, 0.1, 1.2, 4.5, 9.0, 13.2, 18.8, 24.8, 28.5])
    u2 = -np.array([2.5, 4.02, 4.1, 4.22, 4.51, 4.7, 4.76, 4.8, 4.84, 4.87])
    i2 = -np.array([0.00, 0.1, 0.18, 0.28, 0.85, 2.03, 3.5, 5.88, 8.33, 12.18])
    u3 = np.concatenate((u2, u1)) #对两组数据进行连接
    i3 = np.concatenate((i2, i1))
    f = interpolate.interp1d(u3, i3, kind='cubic') #获得三次方插值函数以平滑曲线
    xnew = np.linspace(min(u3), max(u3), 1000); #平滑曲线时用到的经细分后的x坐标
    plt.plot(xnew, f(xnew), 'k')
    plt.scatter(u3, i3, c='k', marker='o')
    plt.title('半导体二极管2CW52的正反向伏安特性曲线')
    plt.xticks(np.linspace(-5, 1, 11))
    plt.yticks(np.linspace(-15, 30, 10))
    plt.xlabel('U/V')
    plt.ylabel('I/mA')
def jtsjg():
    u1 = np.array([0.00, 0.1, 0.26, 0.52, 0.9, 1.5, 2.24, 2.76, 3.38, 4.00, 4.54, 5.0])
    i1 = np.array([0.0, 5.09, 9.25, 9.4, 9.51, 9.6, 9.8, 9.91, 10.05, 10.09, 10.35, 10.4])
    f1 = interpolate.interp1d(u1, i1, kind='linear') #获得线性(更高次会过拟合)插值函数以平滑曲线
    u2 = np.array([0.0, 0.1, 0.15, 0.24, 0.4, 1.22, 1.9, 2.4, 3.2, 3.93, 4.51, 5.00])
    i2 = np.array([0.0, 6.8, 11.6, 13.2, 13.8, 14.1, 14.4, 14.7, 15.0, 15.3, 15.6, 15.8])
    f2 = interpolate.interp1d(u2, i2, kind='linear')
    u3 = np.array([0.0, 0.05, 0.1, 0.16, 0.55, 1.1, 1.85, 2.43, 2.87, 3.3, 3.8, 5])
    i3 = np.array([0.0, 4.4, 10.3, 14.7, 18.3, 18.6, 19.3, 19.7, 20, 20.3, 20.6, 21])
    f3 = interpolate.interp1d(u3, i3, kind='linear')
    xnew = np.linspace(0, 5, 1000)
    plt.plot(xnew, f1(xnew), 'k', label='40μA')
    plt.plot(xnew, f2(xnew), 'k--', label='60μA')
    plt.plot(xnew, f3(xnew), 'k-.', label='80μA')
    plt.scatter(u1, i1, c='k', marker='o')
    plt.scatter(u2, i2, c='k', marker='o')
    plt.scatter(u3, i3, c='k', marker='o')
    plt.title('晶体三极管的输出特性曲线')
    plt.xticks(np.linspace(0, 5, 11))
    plt.yticks(np.linspace(0, 22, 12))
    plt.xlabel('$U_{ce}$/V')
    plt.ylabel('$I_c$/mA')
    plt.legend()
    print(f1(3.5))
    print(f2(3.5))
    print(f3(3.5))
plt.rcParams['font.sans-serif'] = ['SimHei'] #使中文能正常显示
plt.rcParams['axes.unicode_minus'] = False #使符号能正常显示
plt.rcParams['font.size'] = 16 #改变字体大小
plt.figure(figsize=(12, 6)) #改变图片大小
plt.grid(True) #显示网格
ax = plt.gca() #获得坐标轴
ax.spines['right'].set_color('none') #隐藏右边框和上边框
ax.spines['top'].set_color('none')
ax.spines['bottom'].set_position(('data', 0)) #把坐标轴移到(0, 0)
ax.spines['left'].set_position(('data', 0))
jtsjg()
plt.show()
												
											用matplotlib画简单折线图示例的更多相关文章
- 可视化数据matplotlib之安装与简单折线图
		
matplotlib是一个可视化数据的模块,安装前需要先安装Visual Studio Community:然后去https://pypi.python.org/pypi上查找matplotlib并下 ...
 - Matplotlib学习---用matplotlib画箱线图(boxplot)
		
箱线图通过数据的四分位数来展示数据的分布情况.例如:数据的中心位置,数据间的离散程度,是否有异常值等. 把数据从小到大进行排列并等分成四份,第一分位数(Q1),第二分位数(Q2)和第三分位数(Q3)分 ...
 - matplotlib的使用--折线图--入门
		
目录 matplotlib应用介绍 一天天气变化图 两小时随机温度图 中文显示问题 个人交往统计图 多人交往统计图 总结 介绍: 举个例子(一天天气变化图): 假设一天中每隔两个小时(range(2, ...
 - matplotlib(二):折线图
		
import numpy as np import matplotlib.pyplot as plt import matplotlib.dates as mdates # 解决中文显示问题 plt. ...
 - Python学习-使用matplotlib画动态多图
		
最近常常使用matplotlib进行数学函数图的绘制,可是怎样使用matplotlib绘制动态图,以及绘制动态多图.直到今天才学会. 1.參考文字 首先感谢几篇文字的作者.帮我学会了怎样绘制.大家也能 ...
 - 玩转html5(二)----用canvas结合脚本在画布上画简单的图(html5又一强大功能)
		
在html5中可以使用canvas标签在画布上画图,先直接上代码,这篇文章先简单介绍一下canvas的使用方法,简单画几个圆,矩形,三角形,写字. 在代码中均给出了注释,在这里特别强调的一点是:使用c ...
 - Matplotlib学习---用matplotlib画直方图/密度图(histogram, density plot)
		
直方图用于展示数据的分布情况,x轴是一个连续变量,y轴是该变量的频次. 下面利用Nathan Yau所著的<鲜活的数据:数据可视化指南>一书中的数据,学习画图. 数据地址:http://d ...
 - 使用python内置库matplotlib,实现折线图的绘制
		
环境准备: 需要安装matplotlib,安装方式: pip install matplotlib 直接贴代码喽: #引入模块 from matplotlib import pyplot,font_m ...
 - python中matplotlib画折线图实例(坐标轴数字、字符串混搭及标题中文显示)
		
最近在用python中的matplotlib画折线图,遇到了坐标轴 "数字+刻度" 混合显示.标题中文显示.批量处理等诸多问题.通过学习解决了,来记录下.如有错误或不足之处,望请指 ...
 
随机推荐
- fastjson对String、JSONObject、JSONArray相互转换
			
String——>>>JSONArray String st = "[{name:Tim,age:25,sex:male},{name:Tom,age:28,sex:mal ...
 - Python format格式化函数
			
参考资料:https://www.runoob.com/python/att-string-format.html 在学习Python的时候碰到了一个很有趣的格式化输入的技巧,下面记录在此. Pyth ...
 - Zookeeper——分布式一致性协议及Zookeeper Leader选举原理
			
文章目录 一.引言 二.从ACID到CAP/BASE 三.分布式一致性协议 1. 2PC和3PC 2PC 发起事务请求 事务提交/回滚 3PC canCommit preCommit doCommit ...
 - Day8-微信小程序实战-交友小程序-首页用户列表渲染及多账号调试及其点赞功能的实现
			
在这之前已经把编辑个人的所有信息的功能已经完成了 之后先对首页的列表搞动态的,之前都是写死的静态 1.之前都是把好友写死的,现在就在js里面定义一个数组,用循环来动态的绑定 在onReady中定义,取 ...
 - Lens —— 最炫酷的 Kubernetes 桌面客户端
			
原文链接:https://fuckcloudnative.io/posts/lens/ Kubernetes 的桌面客户端有那么几个,曾经 Kubernetic 应该是最好用的,但最近有个叫 Lens ...
 - phpstorm设置xdebug调试
			
phpstorm设置xdebug调试# wamp开发环境安装完成以后,打开网页,输入 :localhost 检测xdebug是否开启 3.若xdebug已开启,请找到你wamp或者phpstudy的安 ...
 - JSP新闻显示
			
MYSQL数据库创建新闻表,用户登陆时使用SERVLET获取用户名,效验通过后直接跳转新闻列表页面,JSP使用EL显示新闻列表 1.首先创建数据库及用户.新闻表 CREATE DATABASE /*! ...
 - 关于html属性中onSubmit事件属性的使用
			
看到一段onSubmit事件属性的例子,如下: <!DOCTYPE html> <html> <head> <script> function vali ...
 - caffe的python接口学习(1)生成配置文件
			
---恢复内容开始--- 看了denny的博客,写下自己觉得简短有用的部分 想用caffe训练数据首先要学会编写配置文件: (即便是用别人训练好的模型也要进行微调的,所以此关不可跨越) 代码就不粘贴了 ...
 - js基础练习题(2)
			
5.函数 1.按要求封装两个函数 1.封装一个函数,要求输入字符串转化成数组弹出 2.封装一个函数,要求能求出三个数中的最小值,注意:不准使用js内置函数 2.封装一个函数,求参数的和,注意:参数不固 ...