机器学习 | 掌握Matplotlib的可视化图表操作

        Matplotlib是python的一个数据可视化库,用于创建静态、动态和交互式图表。它可以制作多种类型的图表,如折线图、散点图、柱状图、饼图、直方图、3D 图形等。以渐进、交互式方式实现数据可视化。当然博主也不能面面俱到的讲解到所有内容,详情请参考:官网

可视化是在整个数据挖掘的关键辅助工具,可以清晰的理解数据,从而调整我们的分析方法。将数据进行可视化,更直观的呈现。使数据更加客观、更具说服力。终端执行如下命令安装:

pip install matplotlib -i https://pypi.mirrors.ustc.edu.cn/simple

使用Matplotlib画图可以参考如下步骤:

# 导入matplotlib.pyplot模块
import matplotlib.pyplot as plt# 图形绘制
plt.figure(figsize=(), dpi=) # 创建画布,figsize:图的长度;dpi:图的清晰度
plt.plot(x,y) # 绘制图像
plt.show() # 显示图像

基础折线显示:接下来我们工具Matplotlib画图步骤,使用jupyter notebook工具进行实现:

import matplotlib.pyplot as plt# 准备数据
x = range(60)
y = [random.uniform(15, 18) for i in x] # 生成一个长度为 60 的随机浮点数列表,用于模拟某个过程在 60 分钟内的变化情况。# 创建画布
plt.figure(figsize=(20,4),dpi=100)# 绘制图像
plt.plot(x, y)#图像显示
plt.show()

自定义刻度:如果我们想给x和y轴添加自定义刻度的话,可以采用如下的方式进行:

import matplotlib.pyplot as plt
import random
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False# 准备数据
x = range(60)
y = [random.uniform(15, 18) for i in x] # 生成一个长度为 60 的随机浮点数列表,用于模拟某个过程在 60 分钟内的变化情况。# 创建画布
plt.figure(figsize=(20,4),dpi=100)# 绘制图像
plt.plot(x, y)# 添加 x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 修改x,y轴坐标刻度显示
plt.xticks(x[::5], x_ticks_label[::5])
plt.yticks(y_ticks[::5])#图像显示
plt.show()

添加网格显示: 可以采用如下的步骤:

# 添加网格显示
plt.grid(True, linestyle = "--", alpha = 0.5) # linestyle 表示虚线 # alpha 表示透明度

添加描述信息:添加x轴、y轴描述信息及标题,通过fontsize参数可以修改图像中的字体大小

# 添加描述信息
plt.xlabel("时间", fontsize=15)
plt.ylabel("温度", fontsize=15)
plt.title("中午11点-12点某城市温度变化", fontsize=20)

图像保存:如果想对图像进行保存的话,可以采用如下的操作进行:

# 图像保存
plt.savefig("./test.png")

一个坐标轴绘制多个图像: 很简单,在准备多个数据之后绘制多次图像即可完成

# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x] 
y_beijin = [random.uniform(1,3) for i in x]# 创建画布
plt.figure(figsize=(20,4),dpi=100)# 绘制图像
plt.plot(x, y_shanghai)
plt.plot(x, y_beijin)

设置图形风格:我们可以通过如下的变量来设置图像的风格:

颜色字符:

r(红色)、g(绿色)、b(蓝色)、w(白色)、c(青色)、m(养红)、y(黄色)、k(黑色)

风格字符:

-(实线)、--(虚线)、-.(点划线)、:(点虚线)、' '(空格)

# 绘制图像
plt.plot(x, y_shanghai)
plt.plot(x, y_beijin, color='r', linestyle='--')

显示图例:通过显示图例将图形代表的含义表示出来:

# 绘制图像
plt.plot(x, y_shanghai, label="上海")
plt.plot(x, y_beijin, color='r', linestyle='--', label="北京")# 显示图例
plt.legend(loc="best")

当然图例的位置我们可以通过设置loc的值来进行改变:

Stringbestupper rightupper leftlower leftlower rightrightcenter leftcenter rightlower centerupper centercenter
Code012345678910

多个坐标系实现绘图:通过如下代码我们可以实现多个坐标轴实现绘图:

import matplotlib.pyplot as plt
import random
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False# 准备数据
x = range(60)
y_shanghai = [random.uniform(15, 18) for i in x] 
y_beijin = [random.uniform(1,3) for i in x]# 创建画布
fig, axes = plt.subplots(nrows=1, ncols=2, figsize=(20, 4), dpi=100)
# 绘制图像
axes[0].plot(x, y_shanghai, label="上海")
axes[1].plot(x, y_beijin, color='r', linestyle='--', label="北京")# 显示图例
axes[0].legend(loc=0)
axes[1].legend(loc=0)# 添加 x,y轴刻度
x_ticks_label = ["11点{}分".format(i) for i in x]
y_ticks = range(40)
# 修改x,y轴坐标刻度显示 
axes[0].set_xticks(x[::5])
axes[0].set_yticks(y_ticks[::5])
axes[0].set_xticklabels(x_ticks_label[::5])
axes[1].set_xticks(x[::5])
axes[1].set_yticks(y_ticks[::5])
axes[1].set_xticklabels(x_ticks_label[::5])# 添加网格显示 
axes[0].grid(True, linestyle = "--", alpha = 0.5) 
axes[1].grid(True, linestyle = "--", alpha = 0.5) # 添加描述信息
axes[0].set_xlabel("时间", fontsize=15)
axes[0].set_ylabel("温度", fontsize=15)
axes[0].set_title("中午11点-12点某城市温度变化", fontsize=20)
axes[1].set_xlabel("时间", fontsize=15)
axes[1].set_ylabel("温度", fontsize=15)
axes[1].set_title("中午11点-12点某城市温度变化", fontsize=20)#图像显示
plt.show()

折线图实现:通过numpy实现折线图的方法:

import matplotlib.pyplot as plt
import numpy as np# 准备数据
x = np.linspace(-10, 10, 1000)
y = np.sin(x)# 创建画布
plt.figure(figsize=(20, 4), dpi=100)# 绘制图像
plt.plot(x, y)# 添加网格显示
plt.grid()# 显示图像
plt.show()

常见图形绘制:接下来就其他常见的图形进行一个简单的代码演示:

首先我们先导入我们的库,接下来借助matplotlib库来实现各种图形的绘制

import matplotlib.pyplot as plt
from pylab import mpl
# 设置显示中文字体
mpl.rcParams["font.sans-serif"] = ["SimHei"]
# 设置正常显示符号
mpl.rcParams["axes.unicode_minus"] = False
# 准备数据(散点图)
x = range(60)
y = [random.uniform(15, 18) for i in x] # 生成一个长度为 60 的随机浮点数列表,用于模拟某个过程在 60 分钟内的变化情况。
# 创建画布
plt.figure(figsize=(20,4),dpi=100)
# 绘制图像
plt.plot(x, y)
#图像显示
plt.show()

# 准备数据(柱状图)
movie_name = ['雷神3','正义联盟','误杀','全球风暴','雷神3','正义联盟','误杀','全球风暴'] # 电影名字
x = range(len(movie_name)) # 恒坐标
y = [12,21,21,31,12,21,21,31]# 票房数据
# 创建画布
plt.figure(figsize=(20, 4), dpi=100)
# 绘制图像
plt.bar(x, y, color=['b','r','g','y','c','m','k','g'], width=0.4)
# x轴坐标显示
plt.xticks(x, movie_name)
# 添加网格
plt.grid(linestyle="--", alpha=0.8)
# 添加标题
plt.title("电影票房收入对比", fontsize=20)
# 图像显示
plt.show()

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/244420.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Qt 拖拽事件示例

一、引子 拖拽这个动作,在桌面应用程序中是非常实用和具有很友好的交互体验的。我们常见的譬如有,将文件拖拽到某个窗口打开,或者拖拽文件到指定位置上传;在绘图软件中,选中某个模板、并拖拽到画布上,画布上变回绘制该模板的图像… 诸如此类,数不胜数。 那么,在Qt中我…

初识k8s(概述、原理、安装)

文章目录 概述由来主要功能 K8S架构架构图组件说明ClusterMasterNodekubectl 组件处理流程 K8S概念组成PodPod控制器ReplicationController(副本控制器)ReplicaSet (副本集)DeploymentStatefulSet (有状态副本集&#…

Spring Security工作原理(三)

在认证之间保存请求 如处理安全异常中所示,当请求没有认证且需要认证资源时,需要保存请求以便在认证成功后重新请求受保护的资源。在Spring Security中,这是通过使用RequestCache实现来保存HttpServletRequest来实现的。 RequestCache HttpServletRequest被保存在Request…

【nginx实战】nginx正向代理、反向代理、由反向代理实现的负载均衡、故障转移详解

文章目录 一. 正向代理与反向代理的概念二. Nginx服务器的正向代理服务1. Nginx服务器正向代理服务的配置的3个指令1.1. resolver指令1.2. resolver_timeout指令1.3. proxy_pass指令 2. Nginx服务器正向代理服务的使用 三. Nginx服务器的反向代理服务1. 反向代理的基本指令1.1.…

JS在当前时间的基础上减10个月或者20个月

需求:调用接口默认传当前时间,如2024-01,点击分页第几页都是传其上一页的最后一条日期的减一月份 思路:点击第几页,减多少,比如点击第二页减10月,点击第三页减20月,代码如下&#xf…

大数据学习之Flink算子、了解DataStream API(基础篇一)

DataStream API (基础篇) 注: 本文只涉及DataStream 原因:随着大数据和流式计算需求的增长,处理实时数据流变得越来越重要。因此,DataStream由于其处理实时数据流的特性和能力,逐渐替代了DataSe…

ZXing开源库生成二维码

引言 二维码(QR Code)作为一种快速、高容量、高密度的矩阵条码,已经在各行各业得到广泛应用。ZXing(Zebra Crossing)是一款由Google开源的Java二维码生成和解析库,提供了丰富的功能和易于使用的API。本篇博…

C# Cad2016二次开发选择csv导入信息(七)

//选择csv导入信息 [CommandMethod("setdata")] //本程序在AutoCAD的快捷命令是"DLLLOAD" public void setdata() {Microsoft.Win32.OpenFileDialog dlg new Microsoft.Win32.OpenFileDialog();dlg.DefaultExt ".csv";// Display OpenFileDial…

什么样的宣传才能对消费者起效?

品牌离不开宣传,宣传又直接面向消费者,然后面对铺天盖地的宣传,除了从业人员,相信大部分用户都会有抵触心理,今天媒介盒子就来和大家聊聊,什么样的宣传能够提高消费者的接受度,让宣传不白宣传。…

RabbitMQ中交换机的应用 ,原理 ,案例的实现

🎉🎉欢迎来到我的CSDN主页!🎉🎉 🏅我是平顶山大师,一个在CSDN分享笔记的博主。📚📚 🌟推荐给大家我的博客专栏《RabbitMQ中交换机的应用及原理,案…

TCP服务器最多支持多少客户端连接

目录 一、理论数值 二、实际部署 参考 一、理论数值 首先知道一个基础概念,对于一个 TCP 连接可以使用四元组(src_ip, src_port, dst_ip, dst_port)进行唯一标识。因为服务端 IP 和 Port 是固定的(如下图中的bind阶段&#xff0…

Pytest中conftest.py的用法

Pytest中conftest.py的用法 ​ 在官方文档中,描述conftest.py是一个本地插件的文件,简单的说就是在这个文件中编写的方法,可以在其他地方直接进行调用。 注意事项 只能在根目录编写conftest.py 插件加载顺序在搜集用例之前 基础用法 这里…

NebulaGraph is nothing without you | 社区 2023 年度人物合集

在去年的年度人物 回顾中,我们看到了形形色色的人们,他们当中有帮 NebulaGraph 捉 bug 的小能手,也有通过用回复来解答他人疑惑的启蒙者…在今年(2023 年),我们这个整点不一样的,将镜头推进&…

新版idea创建spring boot项目

目录 前言 汉化教程 项目模板初始化 1.点击新建项目 2.配置初始化信息 3.初始依赖选择 配置Maven 1.打开maven设置 2.重写maven配置文件 3.选择你创建的配置文件 4.重启项目 spring boot配置并测试 1.修改配置文件后缀 2.启动项目 3.编写测试控制类 4.重启项目…

【Go面试向】defer与time.sleep初探

【Go面试向】defer与time.sleep初探 大家好 我是寸铁👊 总结了一篇defer传参与time.sleep初探的文章✨ 喜欢的小伙伴可以点点关注 💝 请大家看下面这段代码,看运行结果会出现什么,为什么? 问题 demo package mainim…

性能优化-HVX架构简介

来自 「发表于知乎专栏《移动端算法优化》」 本文主要介绍Hexagon DSP的HVX技术,旨在通过简单的语言讲清HVX技术。 🎬个人简介:一个全栈工程师的升级之路! 📋个人专栏:高性能(HPC)开…

数据管理平台Splunk Enterprise本地部署并结合内网穿透实现远程访问

文章目录 前言1. 搭建Splunk Enterprise2. windows 安装 cpolar3. 创建Splunk Enterprise公网访问地址4. 远程访问Splunk Enterprise服务5. 固定远程地址 前言 本文主要介绍如何简单几步,结合cpolar内网穿透工具实现随时随地在任意浏览器,远程访问在本地…

【书生·浦语大模型实战】“PDF阅读小助手”学习笔记

1 模型部署 在InternStudio平台中选择A100 (1/4)的配置,镜像选择Cuda11.7-conda,可以选择已有的开发机langchain; 1.1 创建工作空间 mkdir /root/pdf_project1.2 Clone项目 git clone https://gitee.com/tcexeexe/pdf-reading-assistant.…

HCIA——23DNS层次域名空间、域名服务器、域名解析的原理的选择、解答

学习目标: 计算机网络 1.掌握计算机网络的基本概念、基本原理和基本方法。 2.掌握计算机网络的体系结构和典型网络协议,了解典型网络设备的组成和特点,理解典型网络设备的工作原理。 3.能够运用计算机网络的基本概念、基本原理和基本方法进行…

项目解决方案: 视频融合(实时监控视频和三维建模进行融合)设计方案

目 录 一、需求描述 1、视频接入和控制要求 2、视频播放需求 3、提供其他应用的调用 二、方案设计 (一)系统设计图 (二)产品实现方案 三、产品和功能描述 (一)总体描述 &#xf…