这是“简洁优雅的Matplotlib可视化”栏目的第 2 篇文章!

我在上一期举了一个很简单的线形图例子——绘制sin和cos曲线。在这一期,我们将系统地讲解线形图和散点图的画法。

同样地,会在结尾放一我个详细的Python画图实战案例哦,喜欢的小伙伴请一定要点个赞再走呀!

绘制线形图

在所有图形中,最基本的应该就是线性方程y=f(x)的可视化了。

在Python脚本中绘制线形图,我们首先需要进行一系列基础操作——调用程序包、设置绘图样式、创建图形和坐标轴。此外,根据需要设置图形标签和图例,并记住在脚本末尾显示图形(plt.show)。

注:小伙伴们也可以直接复制上期推送结尾的案例,这个案例的主要用途是作为今后画图的模板。

用plt.plot()绘制线形图的代码如下:

x 

其中,plt.plot()函数的括号中有两项,第一项是线性方程y=f(x)中的“x”,第二项是f(x)的方程,这个方程的代码写法通常与程序包Numpy有关。

在方程比较复杂、或方程比较长的情况下,也可以用定义f(x)的方法,如下:

x = np.linspace(0, 12, 121)
y = np.sin(x)
plt.plot(x, y)  

两种代码绘制线形图的结果相同:

简单介绍完如何使用plt.plot()函数,我们再来讲一下如何定义x,这与plt.plot()的原理有关。plt.plot()的原理类似于微元法,是绘制一系列该方程曲线上的点,再用圆滑的曲线将这些点连接。

其中,函数np.linspace()是等差数列函数,np.linspace(a,b,c)的含义是在[a,b]区间上,取均匀地取间隔相等的c个点。因此在上一个例子中,[0,12]是图片中x的定义域,x每增长1,曲线上就增加10个点。c值应选取合适的值,过小的c值会使线形图变成折线,过大的c会增大系统运算量。下图为不同c值的绘图效果。

线条的颜色与风格

(1)线条颜色

可以通过在plt.plot()函数中设置参数来改变线条的颜色与风格。要修改颜色,可以用color参数,它支持各种颜色的字符串。颜色的不同表示方法如下所示:

# 设置线条的颜色与风格
# 标准颜色名称
plt.plot(x, np.sin(x - 0), color = 'blue')
# 缩写颜色代码(rgbcmyk)
plt.plot(x, np.sin(x - 1), color = 'g')
# 范围在0-1的灰度值
plt.plot(x, np.sin(x - 2), color = '0.75')
# 十六进制(RRGGBB,00-FF)
plt.plot(x, np.sin(x - 3), color = '#FFDD44')
# GRB元组,范围在0-1
plt.plot(x, np.sin(x - 4), color = (1.0, 0.2, 0.3))
# HTML颜色名称
plt.plot(x, np.sin(x - 5), color = 'chartreuse')  

如果不指定颜色,Matplotlib就会为多条线自动循环使用一组默认的颜色。

(2)线条形状

与颜色的调整类似,也可以用linestyle调整线条的风格。

#  设置线条的风格
plt.plot(x, x + 0, linestyle = '-')   # 实线
plt.plot(x, x + 1, linestyle = '--')  # 虚线
plt.plot(x, x + 2, linestyle = '-.')  # 点划线
plt.plot(x, x + 3, linestyle = ':')   # 实点线  

(3)颜色与形状组合

可以用一种更简洁的方式,将color与linestyle编码组合起来,作为plt.plot()函数中的一个非关键字参数使用。

#  设置线条的颜色与风格
plt.plot(x, x + 0, '-g')   # 绿色实线
plt.plot(x, x + 1, '--c')  # 青色虚线
plt.plot(x, x + 2, '-.k')  # 黑色点划线
plt.plot(x, x + 3, ':r')   # 红色实点线  


***本期案例***

经过上述绘制线形图的讲解,我相信聪明的小伙伴已经掌握画线形图的基本技巧了。所以今天的案例难度升级,实用性也更为强大。

案例包含了很多新的知识点:

1. 用Pandas读取CSV格式的文件;

2. 提取CSV文件中的数据;

3. 将提取到的数据绘制成线形图;

4. 设置图例在图片的右下方;

5. 调整线条的宽度。

话不多说,代码奉上:

# 调用包
import matplotlib as mpl
import matplotlib.pyplot as plt
import pandas as pd  # 用Pandas读取csv格式的文件
sj = pd.read_csv('BMpl.csv')  # 提取文件中的数据
x = sj['DATE']
BB = sj['B-B']
BM = sj['B-M']
MB = sj['M-B']  # 创建图像
fig = plt.figure()  # 绘制累计频率曲线
plt.plot(x,BB,'-k',linewidth = 1)
plt.plot(x,BM,'--k',linewidth = 1)
plt.plot(x,MB,':k',linewidth = 1)  # 设置题目与坐标轴名称
plt.title('cumulative frequency curve chart')
plt.ylabel('Cumulative frequency curve')
plt.xlabel('Time(min)') # 设置图例(置于右下方)
plt.legend(loc='lower right')  # 显示图片
plt.show()

文件‘BMpl.csv’中储存的数据样例。(三组累计频率曲线)

代码输出的结果。

以上就是本期绘制线形图的全部内容啦!后面的几期会继续更新其他常用图表的画法,和交通学子常用的画图代码。喜欢的小伙伴就请关注、收藏、转发吧~

本文首发于微信公众号"交通科研Lab",更多资料和推送请扫码关注!

c++绘制函数图像_简洁优雅的Matplotlib可视化 | 绘制论文曲线图相关推荐

  1. c++ 绘制函数图像_【图像增强】CLAHE 限制对比度自适应直方图均衡化

    文章来自:微信公众号[机器学习炼丹术]. 文章目录: 1 基本概述 2 竞赛中的CLAHE实现 3 openCV绘制直方图 4 对比度Contrast 5 Contrast Stretching 6 ...

  2. c++ 绘制函数图像_图像轮廓和分水岭算法

    1. 寻找轮廓 findContours() 函数用于在二值图像中寻找轮廓.常与 drawContours() 函数配合使用:findContours() 函数检测到图像的轮廓后,就可以用 drawC ...

  3. 有计算机绘制函数结题报告,信息技术应用用计算机绘制函数图象

    用计算机绘制函数图像 研究性学习报告 组长 黄懿晟 张智育组员 张鑫宇 王海彬 许乃越 李小强 申明军 任亚茹 陈涛静 谭雨佳 方燕 许博翔 郁香华 建辉 王宗显 陈亚丘 马莉 崔航 商健 课题成员 ...

  4. matplotlib.pyplot绘制函数图像希腊字母latex效果设置

    matplotlib.pyplot绘制函数图像希腊字母latex效果设置 用matplotlib绘制函数图像时,有时候为了图形的含义更加清晰明了,需要在函数图形的备注上标明函数表达式,此时往往涉及到用 ...

  5. 利用R和Octave绘制函数图像和求解方程

    任务1.绘制函数图像 1.利用R 方法一: plot(x,y) lines(loess.smooth(x,y),col='red',lwd=2) 方法二: <

  6. Matlab|绘制函数图像

    欢迎点击「算法与编程之美」↑关注我们! 本文首发于微信公众号:"算法与编程之美",欢迎关注,及时了解更多此系列文章. 欢迎加入团队圈子!与作者面对面!直接点击! 一.绘制图像的常用 ...

  7. Python实现绘制函数图像——以Sigmoid函数为例

    在深度学习的研究中,我们经常需要知道激活函数(阶跃函数)的图像,以此判断该神经网络的阈值,并更好的去对权重进行调整.但对于某些复杂的复合函数而言,我们非常困难手画出它的函数图像,这样不仅费时费力,而且 ...

  8. 如何用数学课件制作工具绘制函数图像

    作为专业的数学课件制作工具,数学老师用几何画板可以绘制函数图像.熟练掌握绘制函数图像的方法,对提高数学教学效率很有帮助.下面以画函数y=(1/4)x2在区间[-2,3]上的图像为例详细讲解画函数图像的 ...

  9. Mac系统中怎么绘制函数图像?附绘制函数图像教程~

    学数学常常要自己画图?画不对,画得慢,画的丑?Mac系统中怎么绘制函数图像?福利来了,mac系统下有非常方便的画函数图像的工具,可以快速地画出很多简单的,复杂的,2D的,3D的函数图像.简直就是学习数 ...

最新文章

  1. AI技术加持,让协作机器人更安全
  2. 皮一皮:说好的一起守护光和未来呢...
  3. LeetCode 452 Minimum Number of Arrows to Burst Balloons(贪心法)
  4. 【VM单机模拟系列】VMware P2V简单实现
  5. python实际应用方面的材料_python应用于哪些方面
  6. 金额逾千万!浪潮智能存储G2中标华中科技大学脑科学研究项目
  7. 不是纸上谈兵,VR原来真的可以缓解抑郁症
  8. html 动画过度转换的用法,css(动画,过渡,转换)
  9. jBPM与业务系统集成-通过定制Task Instance等方式实现
  10. Python 之pass 语句
  11. MySql字符串拼接
  12. java学习第123天,p750-761(05/23)干得漂亮
  13. 网络工程师必知的几款网络故障排除工具
  14. short 的算术运算
  15. 台式电脑电源接口介绍
  16. protect your eyes - 豆绿色
  17. 互联网日报 | 3月5日 星期五 | 抖音成为2020欧洲杯官方合作伙伴;携程GMV连续三年全球旅企第一;华为发布好望云服务...
  18. Linux的安装、连接、系统优化
  19. 阿里云FinalShell连接
  20. ffmpeg常用库、术语、API、数据结构总结

热门文章

  1. ucenter php7.0版,UCenter1.5.0/UCenter Home1.5/Discuz! 7.0
  2. 华为宣布:免费培养2000名Java开发者
  3. Gitlab+Docker实现持续集成(CI)与持续部署(CD)
  4. 实战 RocketMQ 流量削峰,怎么能错过这一篇!
  5. Spring框架----基于接口的动态代理
  6. 2017-2018-1 20155327 《信息安全系统设计基础》第7周学习总结
  7. HDU 2814 斐波那契循环节 欧拉降幂
  8. 问题-提示“请确定磁盘未满或未被写保护而且文件未被使用”
  9. 苹果推出Find My Friends好友追踪iOS应用
  10. 安装VS2008错误解决