当前位置: 首页 > news >正文

Python之列表解析和用matplotlib模块绘制图形

  • 列表解析
  • 用matplotlib模块绘制成图形
    • 导入模块
    • numpy阵列
      • 将列表转为阵列
      • arrange函数创建阵列
      • 广播
    • 使用matplotilib将阵列绘制成图

列表解析

列表解析式用紧凑的方式来构造列表。
语法:
[表达式 for循环 条件]
例如:要得到0-20的偶数列表。需要在0-20中循环,判断是不是偶数,是就得到这个数。用常规方式:

alist=[]
for i in range(21):if i%2==0:alist.append(i)

如果用列表解析:

alist=[i for i in range(21) if i%2==0]

这种方法也可以用于字符串。
在这里插入图片描述

用matplotlib模块绘制成图形

导入模块

使用 matplotlib 包画图时,我们一般加载里面的 pyplot,并命名为 plt,然后使用 plot 函数画图。

import matplotlib.pyplot as plt

绘制图形时,需要两个列表:x值列表和y值列表。
两个列表的元素个数必须一样,一个y值对应一个x值。

numpy阵列

阵列和列表相似。它是序列数据结构,支持索引和分片,也是可变的数据结构,能响应索引赋值。**阵列和列表最大的区别在于,numpy阵列只能包含相同的数据类型,默认情况下为浮点数类型。**由于有类型限制,因此在阵列上能更有效地进行浮点运算。阵列有许多方法。

需要先导入numpy库

inport numpy as np

将列表转为阵列

**array构造函数能将列表对象作为参数,并将其转换为阵列。列表中的元素只能包含数字。**最终阵列对象的数字必须都是一种类型。如果存在混合类型(浮点数和整数)的情况,会将所有的数字转换成浮点数。显示时,阵列将把字符串“array”作为显示对象的一部分。可以使用numpy的append 函数把元素添加到阵列中。

语法:

numpy.array(object, dtype = None, copy = True, order = None, subok = False, ndmin = 0)
名称描述
object数组或嵌套的数列
dtype数组元素的数据类型,可选
copy对象是否需要复制,可选
order创建数组的样式,C为行方向,F为列方向,A为任意方向(默认)
subok默认返回一个与基类类型一致的数组
ndmin指定生成数组的最小维度

arrange函数创建阵列

和range 函数非常相似,:numpy中的arange 函数生成值的范围。差异在于生成的值不是整数,而是浮点值,并且返回的对象是阵列不是列表。arange有三个参数:开始值(浮点值),结束值(浮点值),和增量(浮点值)

numpy.arange(开始值, 结束值, 增量, 数据类型)

例如:x = np.arange(5) 可以得到阵列[0 1 2 3 4]

广播

广播(Broadcast)是 numpy 对不同形状(shape)的数组进行数值计算的方式, 对数组的算术运算通常在相应的元素上进行。

如果两个数组 a 和 b 形状相同,即满足 a.shape == b.shape,那么 a*b 的结果就是 a 与 b 数组对应位相乘。这要求维数相同,且各维度的长度相同。

a = np.array([1,2,3,4]) 
b = np.array([10,20,30,40]) 
c = a * b 

以上c会得到[10 40 90 160]
更多内容看这个https://www.runoob.com/numpy/numpy-broadcast.html

使用matplotilib将阵列绘制成图

plot() 函数是绘制二维图形的最基本函数。
plot() 用于画图它可以绘制点和线,语法格式如下:

#画单条线
plot([x], y, [fmt], *, data=None, **kwargs)
#画多条线
plot([x], y, [fmt], [x2], y2, [fmt2], …, **kwargs)

  • x, y:点或线的节点,x 为 x 轴数据,y 为 y 轴数据,数据可以列表或数组。

  • fmt:可选,定义基本格式(如颜色、标记和线条样式)。

  • **kwargs:可选,用在二维平面图上,设置指定属性,如标签,线的宽度等。

  • 颜色字符:‘b’ 蓝色,‘m’ 洋红色,‘g’ 绿色,‘y’ 黄色,‘r’ 红色,‘k’ 黑色,‘w’ 白色,‘c’ 青绿色,‘#008000’ RGB 颜色符串。多条曲线不指定颜色时,会自动选择不同颜色。

  • 线型参数:‘‐’ 实线,‘‐‐’ 破折线,‘‐.’ 点划线,‘:’ 虚线。

  • 标记字符:‘.’ 点标记,‘,’ 像素标记(极小点),‘o’ 实心圈标记,‘v’ 倒三角标记,‘^’ 上三角标记,‘>’ 右三角标记,‘<’ 左三角标记…等等。

import matplotlib.pyplot as plt
import numpy as npxpoints = np.array([1, 8])
ypoints = np.array([3, 10])plt.plot(xpoints, ypoints)
plt.show()

在这里插入图片描述

更多案例可以看这个https://www.runoob.com/matplotlib/matplotlib-pyplot.html

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • LeetCode面试题Day15|LC219 存在重复元素Ⅱ、LC229 汇总区间
  • 高考杂志社《高考》杂志社高考杂志社编辑部2024年第22期目录
  • 客车制造5G智能工厂工业物联数字孪生平台,推进制造业数字化转型
  • 微服务事务管理
  • Qt5.14.2 多边形与多边形求交集
  • GPT4的代码生成能力能不能取代一个月薪5000水平的码农?
  • 大象机械臂myCobot 280 JN 2023和D435i相关环境配置
  • Spring Boot 中的 starter 是什么
  • 大脑可视化:多种方式实现fMRI的ROI的绘图
  • C语言 | Leetcode C语言题解之第363题矩形区域不超过K的最大数值和
  • 如何解决git@github.com: Permission denied (publickey)异常
  • k8s Pod生命周期详解
  • 動態IP設置反向代理教程
  • 【playwright篇】 Locator对象的方法详解
  • 鸿蒙OS promptAction的使用
  • @angular/forms 源码解析之双向绑定
  • [译] 怎样写一个基础的编译器
  • docker python 配置
  • js 实现textarea输入字数提示
  • k个最大的数及变种小结
  • linux学习笔记
  • mysql 5.6 原生Online DDL解析
  • PaddlePaddle-GitHub的正确打开姿势
  • Python 使用 Tornado 框架实现 WebHook 自动部署 Git 项目
  • Vue 2.3、2.4 知识点小结
  • Vue全家桶实现一个Web App
  • 初探 Vue 生命周期和钩子函数
  • 蓝海存储开关机注意事项总结
  • 学习笔记TF060:图像语音结合,看图说话
  • Android开发者必备:推荐一款助力开发的开源APP
  • # C++之functional库用法整理
  • # Kafka_深入探秘者(2):kafka 生产者
  • ###51单片机学习(1)-----单片机烧录软件的使用,以及如何建立一个工程项目
  • #[Composer学习笔记]Part1:安装composer并通过composer创建一个项目
  • #565. 查找之大编号
  • #AngularJS#$sce.trustAsResourceUrl
  • #include到底该写在哪
  • $.type 怎么精确判断对象类型的 --(源码学习2)
  • (7)svelte 教程: Props(属性)
  • (js)循环条件满足时终止循环
  • (附源码)ssm失物招领系统 毕业设计 182317
  • (九十四)函数和二维数组
  • (十一)c52学习之旅-动态数码管
  • (五)大数据实战——使用模板虚拟机实现hadoop集群虚拟机克隆及网络相关配置
  • (原創) 博客園正式支援VHDL語法著色功能 (SOC) (VHDL)
  • (转)scrum常见工具列表
  • ./include/caffe/util/cudnn.hpp: In function ‘const char* cudnnGetErrorString(cudnnStatus_t)’: ./incl
  • .equals()到底是什么意思?
  • .htaccess配置常用技巧
  • .MSSQLSERVER 导入导出 命令集--堪称经典,值得借鉴!
  • .naturalWidth 和naturalHeight属性,
  • .NET Framework 4.6.2改进了WPF和安全性
  • .Net 访问电子邮箱-LumiSoft.Net,好用
  • .NetCore 如何动态路由
  • .Net高阶异常处理第二篇~~ dump进阶之MiniDumpWriter