《python每天一小段》--12 数据可视化《1》
欢迎阅读《Python每天一小段》系列!在本篇中,将使用Python Matplotlib实现数据可视化的简单图形。
文章目录
- 一、概念
- (1)安装matplotlib
- (2)数据可视化实现步骤
- 二、绘制简单的折线图
- (1)简单的图表
- (2)修改标签文字和线条粗细
- (3)校正图形
- (4)绘制单个点
- (5)绘制一系列点
- (6)自动计算
- (7)删除数据点的轮廓
- (8)修改颜色
- (9)自定义颜色
- (10)颜色映射
- (11)自动保存
- (12)绘制前 5 个整数的立方值
一、概念
Matplotlib是一个流行的Python数据可视化库,它提供了丰富的绘图功能,可以创建各种类型的图表,包括折线图、散点图、柱状图、饼图等。
要查看使用matplotlib可制作的各种图表,可访问http://matplotlib.org/
(1)安装matplotlib
pip install matplotlib
(2)数据可视化实现步骤
下面是对Matplotlib的详细解释以及如何实现数据可视化的一般步骤:
-
导入Matplotlib库:
在Python脚本中,首先需要导入Matplotlib库。通常使用以下语句导入Matplotlib的pyplot模块:import matplotlib.pyplot as plt -
创建图表:
在开始绘图之前,需要创建一个图表对象。可以使用plt.figure()函数创建一个新的图表。plt.figure() -
绘制图表:
使用Matplotlib的各种绘图函数来绘制所需的图表。例如,使用plt.plot()函数绘制折线图,使用plt.scatter()函数绘制散点图,使用plt.bar()函数绘制柱状图等。x = [1, 2, 3, 4, 5] y = [10, 8, 6, 4, 2] plt.plot(x, y) -
添加标签和标题:
可以使用plt.xlabel()、plt.ylabel()和plt.title()函数为图表添加轴标签和标题。plt.xlabel('X轴') plt.ylabel('Y轴') plt.title('折线图') -
自定义图表样式:
可以使用各种Matplotlib函数来自定义图表的样式,如设置线条颜色、线型、标记样式、图例等。plt.plot(x, y, color='red', linestyle='--', marker='o', label='数据') plt.legend() -
显示图表:
使用plt.show()函数显示图表。plt.show()
以上是一个简单的数据可视化的流程。当然,Matplotlib还提供了许多其他功能,如子图、网格、颜色映射等,可以根据需要进行使用和定制。
除了Matplotlib,还有其他一些数据可视化工具可以使用,如Seaborn、Plotly、Bokeh等。每个工具都有其特点和适用场景,可以根据具体需求选择合适的工具来实现数据可视化。
python代码:
import matplotlib.pyplot as pltplt.figure()
x = [1,2,3,4,5]
y = [10,8,6,4,2]
plt.plot(x,y)
#plt.scatter(x,y)
#plt.bar(x,y)plt.title("x,y table",fontsize=24)
plt.xlabel('x轴')
plt.ylabel('y轴')plt.plot(x,y,color='red',linestyle='--',marker='o',label='数据')
plt.legend()plt.show()
生成图表:

二、绘制简单的折线图
(1)简单的图表
1、首先导入了模块pyplot,并给它指定了别名plt,以免反复输入pyplot
2、创建了一个列表,在其中存储了前述平方数,再将这个列表传递给函数plot(),这个函数尝试根据这些数字绘制出有意义的图形。
3、plt.show()打开matplotlib查看器,并显示绘制的图形
import matplotlib.pyplot as pltsquares = [1,4,9,16,25]
plt.plot(squares)
plt.show()
图表:

(2)修改标签文字和线条粗细
import matplotlib.pyplot as pltsquares = [1,4,9,16,25]
plt.plot(squares,linewidth=5)#设置图标标题,并给坐标轴加上标签
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)#设置刻度标记的大小
plt.tick_params(axis='both',labelsize=14)
plt.show()
图标:

(3)校正图形
import matplotlib.pyplot as pltinput_values = [1,2,3,4,5]
squares = [1,4,9,16,25]
plt.plot(input_values,squares,linewidth=5)#设置图标标题,并给坐标轴加上标签
plt.title("Square Numbers", fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value",fontsize=14)#设置刻度标记的大小
plt.tick_params(axis='both',labelsize=14)
plt.show()

(4)绘制单个点
使用scatter()绘制散点图并设置其样式
import matplotlib.pyplot as pltplt.scatter(2,4)
plt.show()

添加标题,给轴加标签
import matplotlib.pyplot as pltplt.scatter(2,4)plt.scatter(2,4,s=200)plt.title("Square Number",fontsize=24)
plt.xlabel("Value",fontsize=14)
plt.ylabel("Square of Value" ,fontsize=14)#设置刻度标记的大小
plt.tick_params(axis='both',which='major',labelsize=14)plt.show
图表:

(5)绘制一系列点
要绘制一系列的点,可向scatter()传递两个分别包含x值和y值的列表:
import matplotlib.pyplot as pltx_values = [1,2,3,4,5]
y_values = [1,4,9,16,25]plt.scatter(x_values,y_values,s=100)#设置图标标题及坐标轴指定标签plt.title("Square Number",fontsize=24)
plt.title("Value",fontsize=14)
plt.title("Square of Value",fontsize=14)#设置刻度标记大小
plt.tick_params(axis='both',which='major',labelsize=14)
plt.show()
图表:

(6)自动计算
手工计算列表要包含的值可能效率低下,需要绘制的点很多时尤其如此。可以不必手工计算
包含点坐标的列表,而让Python循环来替我们完成这种计算。下面是绘制1000个点的代码:
import matplotlib.pyplot as pltx_values = list(range(1,1001))
y_values = [x**2 for x in x_values]plt.scatter(x_values,y_values,s=40)#设置图标并给坐标轴加上标签
plt.title("Square Number",fontsize=24)
plt.title("Value",fontsize=14)
plt.title("Square of Value",fontsize=14)#设置刻度标记大小
plt.tick_params(axis='both',which='major',labelsize=14)#设置每个坐标轴的取值范围
plt.axis([0,1100,0,1100000])plt.show()
图表:

(7)删除数据点的轮廓
matplotlib允许你给散点图中的各个点指定颜色。默认为蓝色点和黑色轮廓,在散点图包含的数据点不多时效果很好。但绘制很多点时,黑色轮廓可能会粘连在一起。
要删除数据点的轮廓,可在调用scatter()时传递实参:edgecolor='none'
plt.scatter(x_values,y_values,edgecolor='none',s=40)

(8)修改颜色
修改数据点的颜色,可向scatter()传递参数c,并将其设置为要使用的颜色的名称
plt.scatter(x_values,y_values,c='red',edgecolor='none',s=40)
图表:

(9)自定义颜色
使用RGB颜色模式自定义颜色。要指定自定义颜色,可传递参数c,并将其设置为一个元组,其中包含三个0~1之间的小数值,它们分别表示红色、绿色和蓝色分量。
plt.scatter(x_values,y_values,c=(0,0,0.8),edgecolor='none',s=40)
图表:
创建一个由淡蓝色点组成的散点图:

值越接近0,指定的颜色越深,值越接近1,指定的颜色越浅
(10)颜色映射
颜色映射(colormap)是一系列颜色,它们从起始颜色渐变到结束颜色。在可视化中,颜色映射用于突出数据的规律,例如,你可能用较浅的颜色来显示较小的值,并使用较深的颜色来显示较大的值。
模块pyplot内置了一组颜色映射。要使用这些颜色映射,你需要告诉pyplot该如何设置数据集中每个点的颜色。下面演示了如何根据每个点的y值来设置其颜色:
plt.scatter(x_values,y_values,c=y_values,cmap=plt.cm.Blues,edgecolor='none',s=40)
图表:

将参数c设置成了一个y值列表,并使用参数cmap告诉pyplot使用哪个颜色映射,代码将y值较小的点显示为浅蓝色,并将y值较大的点显示为深蓝色。
要了解pyplot中所有的颜色映射,请访问http://matplotlib.org/,单击Examples,向下滚动到Color Examples,再单击colormaps_reference。
(11)自动保存
要让程序自动将图表保存到文件中,可将对plt.show()的调用替换为对plt.savefig()的调用
plt.savefig("squares.plot.png",bbox_inches='tight')

(12)绘制前 5 个整数的立方值
import matplotlib.pyplot as plt#绘制前5个整数的立方值
x = [1,2,3,4,5]
y = [x[i] ** 3 for i in range(len(x))]plt.plot(x,y)
plt.xlabel("x")
plt.ylabel("x^3")
plt.show()

参考引用《Python从入门到实践》
相关文章:
《python每天一小段》--12 数据可视化《1》
欢迎阅读《Python每天一小段》系列!在本篇中,将使用Python Matplotlib实现数据可视化的简单图形。 文章目录 一、概念(1)安装matplotlib(2)数据可视化实现步骤 二、绘制简单的折线图(1ÿ…...
分类预测 | Matlab实现HPO-GRU【23年新算法】基于猎食者优化算法优化门控循环单元的数据分类预测
分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】 目录 分类预测 | Matlab实现DBO-SVM蜣螂算法优化支持向量机的数据分类预测【23年新算法】分类效果基本描述程序设计参考资料 分类效果 基本描述 1.HPO-GRU【23年新算法】基于猎食者优化算法优…...
【Pytorch】学习记录分享2——Tensor基础,数据类型,及其多种创建方式
pytorch 官方文档 Tensor基础,数据类型,及其多种创建方式 1. 创建 Creating Tensor: 标量、向量、矩阵、tensor2. 三种方法可以创建张量,一是通过列表(list),二是通过元组(tuple),三是通过Numpy的数组(arra…...
实验7:索引和视图定义
【实验目的】 1、了解索引和视图的含义 2、熟悉索引和视图的创建规则 3、掌握索引和视图的创建和管理 【实验设备及器材】 1、硬件:PC机; 2、软件:(1)Windows7; (2)Microsoft SQL Server 2012。 【主要内容】 索引的创建、删除、重建…...
Source Tree回滚 重置 贮藏操作
回滚提交 source tree的回滚提交: 在执行该操作时将会对history中提交的指定节点直接进行回滚,将该节点执行的提交操作撤销(如当前节点是提交文件,执行回滚提交时将会删除该文件,如果当前节点的前面的节点对该节点内容进行修改后,执行回滚提交时需要执行冲突解决),同时生成一次…...
Android13 不能静态注册的几个广播
Android13 不能静态注册的几个广播 文章目录 Android13 不能静态注册的几个广播一、不能静态注册的广播:二、静态注册无法生效的分析1、Intent.java2、其他地方声明了不能静态注册的广播3、为啥静态注册的广播无效?4、其他静态注册无法生效的广播5、其他Android fra…...
吴恩达深度学习L2W1作业1
初始化 欢迎来到“改善深度神经网络”的第一项作业。 训练神经网络需要指定权重的初始值,而一个好的初始化方法将有助于网络学习。 如果你完成了本系列的上一课程,则可能已经按照我们的说明完成了权重初始化。但是,如何为新的神经网络选择…...
uniapp原生插件之安卓app添加到其他应用打开原生插件
插件介绍 安卓app添加到其他应用打开原生插件,接收分享的文本和文件,支持获取和清空剪切板内容 插件地址 安卓app添加到其他应用打开原生插件,支持获取剪切板内容 - DCloud 插件市场 超级福利 uniapp 插件购买超级福利 详细使用文档 u…...
scala编码
1、Scala高级语言 Scala简介 Scala是一门类Java的多范式语言,它整合了面向对象编程和函数式编程的最佳特性。具体来讲Scala运行于Java虚拟机(JVM)之上,井且兼容现有的Java程序,同样具有跨平台、可移植性好、方便的垃圾回收等特性…...
智慧路灯杆如何实现雪天道路安全监测
随着北方区域连续发生暴雪、寒潮、大风等气象变化,北方多地产生暴雪和低温雨雪冰冻灾害风险,冬季雨雪天气深度影响人们出行生活,也持续增加道路交通风险。 智慧路灯杆是现代城市不可或缺的智能基础设施,凭借搭载智慧照明、环境监测…...
C语言指针基础题(二)
目录 例题一题目解析及答案 例题二题目解析及答案 例题三题目解析及答案 例题四题目解析及答案 例题五题目解析及答案 感谢各位大佬对我的支持,如果我的文章对你有用,欢迎点击以下链接 🐒🐒🐒 个人主页 🥸🥸…...
物奇平台MIC配置与音频通路关系
物奇平台MIC配置与音频通路关系 是否需要申请加入数字音频系统研究开发交流答疑群(课题组)?可加我微信hezkz17, 本群提供音频技术答疑服务,群赠送语音信号处理降噪算法,蓝牙耳机音频,DSP音频项目核心开发资料, 1 255代表无效&am…...
外包干了3年,技术退步太明显了。。。。。
先说一下自己的情况,本科生生,18年通过校招进入武汉某软件公司,干了差不多3年的功能测试,今年国庆,感觉自己不能够在这样下去了,长时间呆在一个舒适的环境会让一个人堕落!而我已经在一个企业干了四年的功能…...
阶段十-java新特性
JDK9新特性 1.模块化系统 jar包结构的变化 jar -》model -》package -》class 通过不同的模块进行开发 每个模块都有自己的模块配置文件module-info.java 2.JShell JDK9自带的命令行开发,在进行简单的代码调试时可以直接编译使用 可以定义变量,方法&…...
win10重装系统历程
win10系统更新出问题了,重置系统卡死,遂决定重装。 微软官方工具制作U盘启动盘, 进行到分区时,一冲动把盘都格式化了, 后面了解到,即便进不了系统也有办法备份数据的... 进行到安装时,提示W…...
【知识积累】深度度量学习综述
原文指路:https://hav4ik.github.io/articles/deep-metric-learning-survey Problem Setting of Supervised Metric Learning 深度度量学习是一组旨在衡量数据样本之间相似性的技术。 Contrastive Approaches 对比方法的主要思想是设计一个损失函数,直…...
webrtc网之sip转webrtc
OpenSIP是一个开源的SIP(Session Initiation Protocol)服务器,它提供了一个可扩展的基础架构,用于建立、终止和管理VoIP(Voice over IP)通信会话。SIP是一种通信协议,用于建立、修改和终止多媒体…...
【Spring】依赖注入之属性注入详解
前言: 我们在进行web开发时,基本上一个接口对应一个实现类,比如IOrderService接口对应一个OrderServiceImpl实现类,给OrderServiceImpl标注Service注解后,Spring在启动时就会将其注册成bean进行统一管理。在Co…...
6-tornado配置文件的使用(命令行解析、文件设置)
tornado.options options 可以让服务运行前提前设置参数,而常见的2种设置参数方式为:1. 命令行设置 2. 文件设置命令行解析 使用tornado.options.define前定义,通常在模块的顶层。 然后,可以将这些选项作为以下属性的属性进行访…...
k8s ingress service endpoints 解决微信服务器验证问题(内网穿透)
最近公司要搞微信公众号开发,想用自己公司内网的电脑调试,但涉及到微信服务器地址(URL)验证的问题(内网穿透),查了网上一堆文章有推荐ngrok的,但被微信墙了;有推荐sunny-ngrok的,免费…...
进程地址空间(比特课总结)
一、进程地址空间 1. 环境变量 1 )⽤户级环境变量与系统级环境变量 全局属性:环境变量具有全局属性,会被⼦进程继承。例如当bash启动⼦进程时,环 境变量会⾃动传递给⼦进程。 本地变量限制:本地变量只在当前进程(ba…...
ubuntu搭建nfs服务centos挂载访问
在Ubuntu上设置NFS服务器 在Ubuntu上,你可以使用apt包管理器来安装NFS服务器。打开终端并运行: sudo apt update sudo apt install nfs-kernel-server创建共享目录 创建一个目录用于共享,例如/shared: sudo mkdir /shared sud…...
阿里云ACP云计算备考笔记 (5)——弹性伸缩
目录 第一章 概述 第二章 弹性伸缩简介 1、弹性伸缩 2、垂直伸缩 3、优势 4、应用场景 ① 无规律的业务量波动 ② 有规律的业务量波动 ③ 无明显业务量波动 ④ 混合型业务 ⑤ 消息通知 ⑥ 生命周期挂钩 ⑦ 自定义方式 ⑧ 滚的升级 5、使用限制 第三章 主要定义 …...
WEB3全栈开发——面试专业技能点P2智能合约开发(Solidity)
一、Solidity合约开发 下面是 Solidity 合约开发 的概念、代码示例及讲解,适合用作学习或写简历项目背景说明。 🧠 一、概念简介:Solidity 合约开发 Solidity 是一种专门为 以太坊(Ethereum)平台编写智能合约的高级编…...
大学生职业发展与就业创业指导教学评价
这里是引用 作为软工2203/2204班的学生,我们非常感谢您在《大学生职业发展与就业创业指导》课程中的悉心教导。这门课程对我们即将面临实习和就业的工科学生来说至关重要,而您认真负责的教学态度,让课程的每一部分都充满了实用价值。 尤其让我…...
laravel8+vue3.0+element-plus搭建方法
创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...
Springboot社区养老保险系统小程序
一、前言 随着我国经济迅速发展,人们对手机的需求越来越大,各种手机软件也都在被广泛应用,但是对于手机进行数据信息管理,对于手机的各种软件也是备受用户的喜爱,社区养老保险系统小程序被用户普遍使用,为方…...
计算机基础知识解析:从应用到架构的全面拆解
目录 前言 1、 计算机的应用领域:无处不在的数字助手 2、 计算机的进化史:从算盘到量子计算 3、计算机的分类:不止 “台式机和笔记本” 4、计算机的组件:硬件与软件的协同 4.1 硬件:五大核心部件 4.2 软件&#…...
Python 训练营打卡 Day 47
注意力热力图可视化 在day 46代码的基础上,对比不同卷积层热力图可视化的结果 import torch import torch.nn as nn import torch.optim as optim from torchvision import datasets, transforms from torch.utils.data import DataLoader import matplotlib.pypl…...
云原生周刊:k0s 成为 CNCF 沙箱项目
开源项目推荐 HAMi HAMi(原名 k8s‑vGPU‑scheduler)是一款 CNCF Sandbox 级别的开源 K8s 中间件,通过虚拟化 GPU/NPU 等异构设备并支持内存、计算核心时间片隔离及共享调度,为容器提供统一接口,实现细粒度资源配额…...
